Laravel 将值传递到URL-REST样式

Laravel 将值传递到URL-REST样式,laravel,laravel-4,laravel-routing,Laravel,Laravel 4,Laravel Routing,以及展示方法: 我得到…/user/%7Buser%7D作为URL,我希望它是,例如…../user/exampleusername,还有一个异常:ErrorException:尝试获取非对象的属性 当我在show方法或视图中添加$user时,我得到的只是字符串[6]{user},这意味着我没有成功地将$user传递给user.show路由 官方文档给出了这个例子:return Redirect::route'profile',array'user'=>1;这似乎与我的案例有关,我认为在我的代码

以及展示方法:

我得到…/user/%7Buser%7D作为URL,我希望它是,例如…../user/exampleusername,还有一个异常:ErrorException:尝试获取非对象的属性

当我在show方法或视图中添加$user时,我得到的只是字符串[6]{user},这意味着我没有成功地将$user传递给user.show路由

官方文档给出了这个例子:return Redirect::route'profile',array'user'=>1;这似乎与我的案例有关,我认为在我的代码中应该是这样的:return Redirect::route'user.show',['user'=>$user]

有趣的是,如果在show方法中,我尝试从会话Auth::user获取用户对象,并将其转储,如下所示:

public function show($user)
{
   return View::make('user.edit', ['user' => $user]);
}
它仍将为NULL,但如果我在index方法中转储它:

,然后它返回正确的对象,充满参数和值。。。我不知道发生了什么以及为什么在一个方法中我有session对象,但在另一个方法中我没有

有没有关于如何解决这个问题的建议

更新:我在store方法中将其缩小为以下实现:

在show方法中:

因为显然,唯一可以传递将分解为单个变量的数组的地方是View::make,而在Redirect::to、Redirect::action和Redirect::route等中,必须使用->with'key',$value函数。这些值将在会话单例中可用

尽管如此,我仍然在URL中获得了…/%7b用户%7D。我不知道如何摆脱这种状况……

您需要将用户的id传递给user.show route,而不是$user本身


尝试在show中首先对$user进行URL解码method@bad_boy-我看到在show方法中,我在Route::redirect'user.show'中传递的$user对象实际上是NULL,而在我传递它之前,它是OK的。我的猜测是,将对象传递给路由的语法是不同的。我正试图在atm的官方文件中找到相关信息,但如果你有建议,我非常欢迎。@Milkncookiez-这个问题得到回答了吗?如果是的话,你能接受吗?或者提供更多信息
if (Auth::attempt(Input::only('username', 'password'))) {
     $user = Auth::user();
     return Redirect::route('user.show', ['user' => $user]);
}
public function show($user)
{
   return View::make('user.edit', ['user' => $user]);
}
public function show($user)
{
    $user = Auth::user();
    dd($user);
    ...
public function index()
{
    if (Auth::check()) {
    dd(Auth::user());
    ...
return Redirect::route('user.show')->with('user', $user);
$user = Session::get('user');
return View::make('user.edit', ['user' => $user]);
return Redirect::route('user.show', [$user->id]);