Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更新后的Laravel重定向_Laravel_Laravel 5_Routes - Fatal编程技术网

更新后的Laravel重定向

更新后的Laravel重定向,laravel,laravel-5,routes,Laravel,Laravel 5,Routes,我在名为AssetController的控制器中有一个更新操作 在操作结束时,我执行return\Redirect::route('asset.edit',array($id)) 在我的路由中,我有Route::resource('asset','AssetController') 当我发布到更新操作时,它会将我带到“/asset/8”(8是该资产记录的id)。我希望它转到“/asset/8/edit”--换句话说,就是将用户返回到他们刚刚提交更新的编辑表单 我还尝试了return\Redire

我在名为AssetController的控制器中有一个更新操作

在操作结束时,我执行
return\Redirect::route('asset.edit',array($id))

在我的路由中,我有
Route::resource('asset','AssetController')

当我发布到更新操作时,它会将我带到“/asset/8”(8是该资产记录的id)。我希望它转到“/asset/8/edit”--换句话说,就是将用户返回到他们刚刚提交更新的编辑表单

我还尝试了
return\Redirect::back()
,但这也会发送到“/asset/8”--甚至认为他们刚刚提交的页面的URL是“/asset/8/edit”

为什么这不起作用?

您需要传递一个密钥

return \Redirect::route('asset.edit', array('id' => $id));

我发现了这个问题。我的返回在DB::transaction()中,因此它忽略了它


我的原始return语句在我将其放在DB::transaction()函数之外后就可以正常工作。

像这样注册您的tout:

Route::resource('asset', 'AssetController', ['names' => [ 'edit' => 'asset.edit ]]);
然后使用重定向:

\Redirect::route('asset.edit', array($id));

不要忘记添加元素输入:


非常简单。只需使用这行代码:

return redirect(route('asset.edit', array('id' => $id)));
你应该使用

return redirect("asset/".$id);


谢谢,我希望你是对的,但这不会改变任何事情。Laravel将传递的单个参数解释为id(我尝试了您的建议只是为了确定,但没有成功)。这不是必需的——它与我的代码中的一样工作正常。我的错误是重定向发生在db:transaction()函数中。一旦我把它放在函数外,它就可以在没有任何代码更改的情况下工作。这是没有必要的。同样,一旦我从DB:transaction()中删除了return语句,它就按预期工作了。
return redirect()->route('asset.edit', compact('id'));
return redirect()->route('asset.edit', ['id' => $id]);