Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 显示空白视图的laravel 5.4_Php_Laravel_View_Controller_Laravel 5.4 - Fatal编程技术网

Php 显示空白视图的laravel 5.4

Php 显示空白视图的laravel 5.4,php,laravel,view,controller,laravel-5.4,Php,Laravel,View,Controller,Laravel 5.4,我正在将数据从控制器发送到视图(这是一个单页web应用程序),但视图的输入字段没有显示任何内容。当我使用console.log时,我得到了这个(附屏幕截图)。我的问题是如何在输入视图中显示这些数据 控制器 public function edit(Request $request){ $results = Student::where('id', '=', $request->id)->get(); return $results; } 看

我正在将数据从控制器发送到视图(这是一个单页web应用程序),但视图的输入字段没有显示任何内容。当我使用console.log时,我得到了这个(附屏幕截图)。我的问题是如何在输入视图中显示这些数据

控制器

public function edit(Request $request){
        $results = Student::where('id', '=', $request->id)->get();
        return $results;
    }
看法


{{csrf_field()}}
@如果(isset(结果))
@foreach($results作为$result)
@endforeach
@恩迪夫

您需要像这样将数据传递到laravel中查看

public function edit(Request $request){
        $results = Student::where('id', '=', $request->id)->get();
        return view('your_view_folder.your_view_page', ["results" => $results]);
    }

注意:您没有加载查看页面

有几点我可以推荐。首先,您正在通过id搜索student,我假设它应该返回单个student,并且它是student的主键。因此,您可能需要使用Student::find()。此外,您可能希望构建用于在模型或抽象基础模型上进行搜索的查询,您可以在其中创建基本搜索,所有扩展它的模型都可以使用这些搜索。例如:

abstract class BaseModel extends Eloquent{

protected $guarded = [
    'id'
];

public $primaryKey = 'id';

public $incrementing = false;

public function __construct($attributes = array())  {
    parent::__construct($attributes); // Eloquent
    $this->id = uniqid();

    return $this

}


public static function getObjectById($id){
    $class = get_called_class();
    $results = $class::find($id);
    return $results;

}

public static function getAllObjects(){
    $class = get_called_class();
    return $class::all();
}

}
那么你的学生班:

 class Student extends Model
{

}

然后您的控制器:

    class StudentController extends Controller{
        public function getStudent(Request $request){
            $results = Student::getObjectById($request->id);
            return response()->json([
                 'results' => $results
            ]);

        }
    }
您的路径/web.php:

    Route::get('/student', 'EnumController@getStudent');
我喜欢使用自己的前端,因此我可以使用ajax来完成请求:

     <body>
          <div class="container">
               <div id="student-list" class="well"></div>
          </div>
     </body>

     <script>
         $.ajax({
              type: "GET",
              url: '/student',
              success: function( data ) {
                  results = data.results;

                  console.log(results);

                  $.each(results, function(key, value){
                         $('#student-list').append('<div >' + value + '</option>');
                   });


               }
           });     
     </script>

$.ajax({
键入:“获取”,
url:“/student”,
成功:功能(数据){
结果=数据。结果;
控制台日志(结果);
$。每个(结果、功能(键、值){
$(“#学生列表”)。追加(“”+value+“”);
});
}
});     

要回答您的特定问题:要将数据传递到视图中,必须
返回视图,正如@JYoThl非常正确地建议的那样。但是数据应该作为带有键/值对的数组传入,否则会出现错误。(见附件。)

因此,例如,如果包含表单元素的视图文件名为“formView.blade.php”,并且位于resources/views/directory中,您将修改控制器方法,如下所示:

public function edit(Request $request)
{
    $results = Student::where('id', '=', $request->id)->get();
    return view('formView', ['results' => $results]);
}
或者

public function edit(Request $request)
{
    $results = Student::where('id', '=', $request->id)->get();
    return view('formView')->with('results', $results);
}

$results
现在可在您的视图中使用。

返回视图(“您的视图”文件夹。您的视图页面,$results);将您的返回替换为此行我想您在尝试返回视图时忘记了返回视图(“您的视图”文件夹。您的视图页面,$results);然后它给我这个错误。未定义变量:students(视图:D:\xampp\htdocs\sms1\resources\views\students.blade.php)将不起作用
find()
不返回集合,因此不能对其调用
->first()
,因为
->first()
illighted\Support\collection
的一部分。相反,
find
返回一个
Iluminate\Database\Eloquent\Model
的实例,该实例没有
->first()。所以我不确定他是想返回一个集合还是一个对象。我将编辑它以删除->第一个();应用了你的建议,它给出了这个错误。未定义变量:students(视图:D:\xampp\htdocs\sms1\resources\views\students.blade.php)两个问题:1。您是否在D:\xampp\htdocs\sms1\resources\views\students.blade.php中使用变量$students?(如果是这样,我在上面的代码块中看不到它。您可以在视图中使用$results,或者,例如,$results[0]->last_name,但是除非您添加一些我在代码块中看不到的额外代码,否则不允许使用$students变量。)2。您使用的模型名为“学生”,而不是“学生”。。。但可能它没有正确注册/别名?1。这个错误实际上是说视图参数的变量未定义,即students(students.blade.php)。我没有使用学生作为变量。2.我认为Model Student工作正常,因为它正在添加新学生和删除学生。根据我的经验,该错误应该意味着您正在视图中的某个位置使用变量
$students
。检查整个嵌套视图结构:模板视图@extends@生成视图使用的部分;可能视图中的@include partial已传递或期望传递“students”参数?另外,您可以尝试将控制器方法中的$results重命名为$students,将
return
替换为
return视图('formView',['students'=>$students])
,将视图中的所有变量
$results
更改为
$students
,查看错误是否消失。希望能有帮助,非常抱歉。有一个可变的$学生。现在解决了未定义变量的问题。现在控制器是这样的$结果=学生::其中('id','=',$request->id)->get();返回视图(“学生”,压缩(“结果”);但刚才通过Inspect元素看到,在视图中它并没有进入@if(isset($results))内部。另一方面,Ajax的console.log(数据);正在控制台中打印整个视图的html。我不明白这里有什么不对。应用了你的建议,它给出了这个错误。未定义变量:students(视图:D:\xampp\htdocs\sms1\resources\views\students.blade.php)是否加载了Student模式@Gohar@JYoThI您需要在视图中传递数组。是的,模型加载到控制器中,因为它也在添加和删除学生。只有编辑有问题。您的模型是学生还是学生@阿贾迪帕克马尔
public function edit(Request $request)
{
    $results = Student::where('id', '=', $request->id)->get();
    return view('formView', ['results' => $results]);
}
public function edit(Request $request)
{
    $results = Student::where('id', '=', $request->id)->get();
    return view('formView')->with('results', $results);
}