【问题标题】:Route parameters Laravel 4路由参数 Laravel 4
【发布时间】:2013-11-24 02:21:17
【问题描述】:

我一直在尝试完成这项工作,但不知何故它不起作用。

Route::get('account/edit/{id}', array('before' => 'auth', function($id)
{
$id = Auth::user()->id;
$provider = Provider::find($id); 

return View::make('provider.accountEdit')->with(compact('provider'));
}));

我正在尝试将用户 ID 放在 url 位上,例如 user/account/1

【问题讨论】:

  • 你能告诉我们错误,或者描述它是如何不工作的。
  • 当我尝试编辑链接到此 它显示路由尚不存在或其他什么。
  • 另外,如果我删除 function() 和 /{id} 中的 $id 页面工作正常,但我想获取 ID 并在 url mysite.com/user/id 上显示
  • 您正在检索 $id 作为路由参数,但立即将其替换为 Auth::user->id。我真的不明白你想在这里做什么。即使该路由功能看起来合法,您能否从 laravel 安装的根文件夹中发布 php artisan routes 的输出。

标签: parameters routing laravel


【解决方案1】:

好吧,我放了Auth::user()->id,因为在$provider = Provider::find($id) 中它会说未识别的变量id,所以我想我会放Auth::user,但听起来那是错误的。
这个位是在编辑页面填写表格。

$provider = Provider::find($id); 
return View::make('provider.accountEdit')->with(compact('provider'));

这就是 php artisan 路由对帐户/编辑所说的内容

URI                | Name | Action  |
GET /account/edit  |      | Closure | auth

【讨论】:

  • 您的路线好像没有正确注册。当我使用相同的语法时,php artisan routes 的输出是 | |获取 /account/edit/{id} | |关闭 |认证 | |
  • 哦,是的,我删除了 {id},所以它显示了我发布的内容,但即使使用 edit/{id} 它仍然无法正常工作:/。我再次运行 php artisan routes,结果是 GET /account/edit/{id} ||关闭 |授权。所以我尝试了 account/edit/1 它不起作用,它没有显示 id。
  • 我使用 1 作为占位符。您必须更改 uri 以包含“ceratin 用户”的 id。就像您使用刀片一样。 <a href="account/edit/{{$user->id}}">
【解决方案2】:

尝试将id 设为可选,以便检查是否获得id 值。

'account/edit/{id} 改为'account/edit/{id?}

我认为您收到 route doesn't exist 错误,因为 url 与您的具有 id 的路由不匹配。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-10-13
  • 2014-08-10
  • 2013-10-16
  • 2014-09-24
  • 2013-09-14
  • 2014-06-08
  • 2016-03-05
相关资源
最近更新 更多