【问题标题】:passing parameter in laravel在 laravel 中传递参数
【发布时间】:2014-03-11 21:08:51
【问题描述】:

我有一个带有链接的索引页面:

<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);

});

现在,如果我理解清楚,我将用户名作为参数传递给函数,用户名是我的 url,现在如果我将参数传递给我的显示视图,

<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);
});

【问题讨论】:

    标签: php laravel laravel-4


    【解决方案1】:

    你的路线错了,这是正确的:

    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 中有两种{}:

    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)
    

    【讨论】:

    • 非常感谢,现在更清楚了,我将路由中的路径误认为是变量,在这种情况下,它是来自变量的参数,但只是我传递给路由的纯文本
    猜你喜欢
    • 2015-10-09
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 1970-01-01
    • 2018-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多