Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.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.2_Php_Laravel - Fatal编程技术网

Php 路由组中的通配符前缀干扰路由段塞-Laravel 5.2

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

我有一个包含通配符前缀的路由组。前缀用于国家/地区,例如website.com/Singapore/home或website.com/America/home

此路由组中的某些路由中有段塞

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
中添加第二个参数。这个应该给你一颗子弹。