Php 路由组中的通配符前缀干扰路由段塞-Laravel 5.2
我有一个包含通配符前缀的路由组。前缀用于国家/地区,例如website.com/Singapore/home或website.com/America/home 此路由组中的某些路由中有段塞Php 路由组中的通配符前缀干扰路由段塞-Laravel 5.2,php,laravel,Php,Laravel,我有一个包含通配符前缀的路由组。前缀用于国家/地区,例如website.com/Singapore/home或website.com/America/home 此路由组中的某些路由中有段塞 Route::group(['prefix' => '{country}'], function () { Route::get('home', 'HomeController@all'); Route::get('login', 'AuthController@login'); Route::g
Route::group(['prefix' => '{country}'], function () {
Route::get('home', 'HomeController@all');
Route::get('login', 'AuthController@login');
Route::get('user/{slug}', 'UsersController@show'); });
前两条路线工作正常。但是,第三条路线包含与用户标题对应的slug,这是错误的来源。处理此路由的控制器如下所示
public function show($slug)
{
$user = User::where('slug', '=', $slug)->first();
return view('user.show', compact('user'));
}
子弹把拉威尔弄糊涂了,我得到了这个错误
“尝试获取非对象的属性”,并指向上面的“show”函数,特别是“user”变量
我认为laravel试图找到通配符前缀的slug(它不存在),而不是用户的slug。有什么办法可以解决这个问题吗?您是否确实尝试输出
$slug
的内容?我希望show
中的第一个参数来自{country}
,第二个参数(您不需要)来自{slug}
。不过,我可能错了。我丢弃了slug,这是国家的slug,而不是用户的slug。在方法show
中添加第二个参数。这个应该给你slug。你是否尝试输出$slug
的内容以确定?我希望show
中的第一个参数来自{country}
,第二个参数(您不需要)来自{slug}
。不过,我可能错了。我丢弃了slug,这是国家的slug,而不是用户的slug。在方法show
中添加第二个参数。这个应该给你一颗子弹。