Phi*_*oss 28 php laravel laravel-5
有没有简单的方法来检索请求中的路由绑定模型?
我想更新模型,但在此之前,我想使用Requests authorize()
方法执行一些权限检查.但我只希望模型的所有者能够更新它.
在控制器中,我只是做这样的事情:
public function update(Request $request, Booking $booking)
{
if($booking->owner->user_id === Auth::user()->user_id)
{
// Continue to update
}
}
Run Code Online (Sandbox Code Playgroud)
但我希望在请求中执行此操作,而不是在控制器内执行此操作.如果我做:
dd(Illuminate\Http\Request::all());
Run Code Online (Sandbox Code Playgroud)
它只给我标量形式属性(如_method
等等,但不是模型).
题
如果我将模型绑定到路径,如何从请求中检索该模型?
提前谢谢了.
Mar*_*ean 49
绝对!这是我甚至使用自己的方法.
您可以在请求中获取当前路由,然后获取任何参数,如下所示:
class UpdateRequest extends Request
{
public function authorize()
{
$booking = $this->route('booking');
return $booking->owner->user_id == $this->user()->getKey();
}
}
Run Code Online (Sandbox Code Playgroud)
与smartman(现已删除)的答案不同,如果您已经通过路径模型绑定检索了模型,则不会产生另一个查找查询.
归档时间: |
|
查看次数: |
10711 次 |
最近记录: |