我有一个带有link_to的索引页:
<h1> User:</h1>
@foreach ($user as $user)
{{link_to("/users/{$user->username}",$user->username)}}
@endforeach
然后我有一条路线:
Route::get('/users/{{$username}}', function($username){
return View::make('show')->with('username',$username);
});
现在,如果我理解清楚,我将用户名作为参数传递给函数,用户名是我的网址,现在如果我将参数传递给我的节目视图,
<body>
<div>
<h1> User:</h1>
{{$username}}
</div>
</body>
</html>
我应该可以在我的页面中看到它。哪里错了?当我使用get时,我无法从url中获取参数? 我为什么要这样做:
Route::get('/users/{{$username}}', function($username){
$user=User::whereUsername($username)->fist();
return View::make('show')->with('username',$user);
});
答案 0 :(得分:2)
你的路线错了,这是正确的:
Route::get('/users/{username}', function($username){
$user=User::whereUsername($username)->fist();
return View::make('show')->with('user',$user);
});
只是
/users/{username}
而不是
/users/{{$username}}
此外,您将查看将收到用户对象,因此您必须:
<div>
<h1> User:</h1>
{{$user->username}}
</div>
修改强>
在Laravel中有2种{}
:
1)在视图中,您必须使用{{}}
或{{{}}}
(转义版本)。在其中你放了PHP代码:
{{$variable}}
{{ isset($variable) ? $variable : 'default value' }}
2)在路由中,你只需使用{}
,其中不是PHP,只是一个路由参数名称,没有$
:
/user/{name}
/user/{id?} (in this case id is optional, might or might not be send)