未定义的变量:all_data(视图:/var/www/html/resources/views/welcome.blade.php)

时间:2019-05-28 17:55:32

标签: php laravel model-view-controller controller

我正在尝试从控制器发布数据以进行查看,基本上,当页面加载用户看到表单时,当表单提交时,它将返回数据。我不确定自己在做什么错。我尝试了以下方法来返回数据

尝试了返回方法:

return view('welcome',['all_data'=>$all_data]);
return view('welcome')->with('all_data', $all_data);
return view('welcome')->with('data', json_decode($data, true));
return View::make('welcome', array('all_data'=>$all_data));

控制器:

public function getStatus(Request $request){

//SQLQuery which returns $all_data

$all_data = json_encode($data);
return view('welcome', compact('all_data'));
}

路线:

Route::get('/', function () {
    return view('welcome');
});

Route::post('/getstatus', 'GetApplicationStatusController@getStatus');

查看:

@foreach ($all_data as $data)
<td id="appid">{{$data->appid}}</td>
<td id="firstname">{{$data->firstname}}</td>
<td id="middlename">{{$data->middlename}}</td>
<td id="lastname">{{$data->lastname}}</td>
<td id="action">{{$data->action}}</td>
@endforeach

3 个答案:

答案 0 :(得分:2)

为foreach传递不带json_encode的all_data

public function getStatus(Request $request){

    $all_data = $data;
    return view('welcome', compact('all_data'));
}

视图中:

@foreach ($all_data as $data)
   <td id="appid">{{$data['appid']}}</td>
   <td id="firstname">{{$data['firstname']}}</td>
   <td id="middlename">{{$data['middlename']}}</td>
   <td id="lastname">{{$data['lastname']}}</td>
   <td id="action">{{$data['action']}}</td>
@endforeach

答案 1 :(得分:0)

我首先想到的是您正在访问/路由,该路由没有变量all_data。要解决此问题,也可以从此路由中调用控制器:Route::get('/', 'GetApplicationStatusController@getStatus')

答案 2 :(得分:0)

尝试以下操作:
return view('welcome')->with(compact('all_data'));

或尝试以下操作:
return view('welcome')->with(['all_data'=>$all_data])