首页 > 解决方案 > laravel 视图和路由器未定义对象

问题描述

我的路线:

Route::get("/home/{lang?}", function ($lang=null){

    App::setlocale($lang);
    return view('/home');

});
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Route::resource('/home','RadarController');
Route::resource('/welcome1','DriverController');
Route::post('/welcome1', 'DriverController@store');

在我得到的视图中:

 @foreach($radars2 as $radar)

            <tr>
                <td>{{$radar['id']}}</td>

矿山指数函数

public function index()
{
    $radars2 = Radar::all();
    // return view('home', compact($radars2));
    return  view('home', ['radars2' => $radars2]);
}

所以问题是,当我添加语言环境路由时,我得到未定义的变量:radars2 错误。如果没有语言环境路线,它可以正常工作,那么它可能是什么问题?尝试使用紧凑和数组结果相同,甚至尝试在我的资源控制器路由中添加该语言环境路由,仍然是同样的问题。

标签: phplaravel

解决方案


在您的语言环境路线中,您正在尝试渲染视图“主页”,但您没有在其中传递任何参数

Route::get("/home/{lang?}", function ($lang = null) {
    App::setlocale($lang);
    return view('/home'); //problem is here
});

它应该是这样的:

Route::get("/home/{lang?}", function ($lang = null) {
    App::setlocale($lang);
    $radars2 = Radar::all();
    return view('/home', ['radars2' => $radars2]);
});

推荐阅读