在laravel中传递参数

时间:2014-03-10 23:34:11

标签: php laravel laravel-4

我有一个带有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);
});

1 个答案:

答案 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)