我是Laravel 5的新手,我正在尝试使用新的表单请求来验证应用程序中的所有表单。
现在我被困在一个需要对资源进行加密的地方,我创建了一个DeleteResourceRequest,只是为了使用authorize方法。
问题是,我需要在route参数中找到请求的id,但我不知道如何将其导入authorize方法。
我可以在控制器方法中使用id,如下所示:
public function destroy($id, DeletePivotRequest $request)
{
Resource::findOrFail($id);
}
字符串
但是如何让它在表单请求的授权方法中工作呢?
9条答案
按热度按时间pbpqsu0x1#
这很简单,只需使用
route()
方法。假设您的路由参数称为id
:字符串
e5nqia272#
您可以通过Illuminate\Http\Request示例访问Route参数Value
字符串
yvt65v4c3#
这取决于在路由中定义参数的方式。
对于我下面的例子,它将是:
'user'
不是'id'
$id = $this->route('user');
个的数据
wvyml7n54#
Laravel 5.2,在控制器中:
字符串
我发现这很有用,如果你想使用同一个控制器方法为多个路由多个URL参数,也许所有参数并不总是存在或可能出现在不同的顺序.
即
getParameter('id')
将给予您正确的答案,而不管{id}
在URL中的位置。See Laravel #:找到当前路径
dwbf0jvd5#
在测试了其他解决方案后,似乎不适用于laravel 8,但下面的工作
字符串
假设你的路线是
型
kxe2p93d6#
我来到这里寻找一个答案,并在评论中找到了它,所以想为其他人澄清使用资源路由试图在表单请求中使用此
正如lukas在他的评论中提到的:给定一个资源控制器
Route::resource('post', ...)
,您可以使用的参数将命名为post
这对我来说很有用,但并不完全。看起来参数将是资源存根最后一部分的单数版本。
在本例中,路由定义为
$router->resource('inventory/manufacturers', 'API\Inventory\ManufacturersController');
可用的参数是
manufacturer
(存根inventory/manufacturers
最后一部分的单数版本)xfb7svmp7#
如果你调用,你将得到参数id
字符串
或
型
如果使用资源路由,则需要使用资源名称调用
型
hec6srdp8#
在终端写入中
php artisan route:list
看看你的参数名是什么x1c 0d1x
然后使用
$this->route('sphere')获取参数
vaqhlq819#
如果您路由是资源路由,则按照以下方式编码
字符串