0
に属しマイUser.php
Laravelの検証サイトでは、ユーザー
class User extends Authenticatable
{
public function sites()
{
return $this->hasMany(Site::class);
}
}
マイSite.php
class Site extends Model
{
public function user()
{
return $this->belongsTo(User::class);
}
}
マイroutes.php
Route::resource('site', 'SiteController');
マイSiteController.php
class SiteController extends Controller
{
public function edit(int $id)
{
$site = Auth::user()->sites()->find($id);
return view('site.edit', compact('site'));
}
}
サイトがユーザーのものであることを確認するにはどうすればよいですか?私は私の場合、サイトがユーザーに属していない場合、$site
変数がnullになることを理解しています。しかし、私はshow
、update
、およびdestroy
のメソッドで同じチェックが必要なので、より多くの宣言的な方法、laravel要求のようなものが必要です。しかし、私はlaravelリクエストを使用することはできません。チェックはこのようなものなので、
$siteId = Route::current()->param('site');
$ids = Auth::user()->sites()->pluck('id')->toArray();
$result = in_array($siteId, $ids);
誰も私の目標を達成する方法を提案できますか?
私は解決策はhttp見つける://のstackoverflowを。 com/questions/22618389/laravel-prevent-users-editing-viewing-other-users-resources?rq = 1。ルートフィルタを使用するだけです。 – melihovv