gpt4 book ai didi

php - Laravel 5 中间件 "Owner"?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:57:37 25 4
gpt4 key购买 nike

我在创建“所有者”中间件时遇到了麻烦。

例如,我有一个 ArticlesUser 模型与 user_id 键相关联。

我想将“owner”中间件添加到 ArticlesController,这样文章的唯一所有者就可以编辑、更新和删除它。

我已经搜索这个问题一段时间了,但从未找到有效的代码。他们中的一些人试图让它与表单请求一起工作,但我对使用中间件很感兴趣。

最佳答案

  1. 创建中间件:
php artisan make:middleware OwnerMiddleware
namespace App\Http\Middleware;

use App\Article;
use Closure;
use Illuminate\Contracts\Auth\Guard;

class OwnerMiddleware
{
/**
* The Guard implementation.
*
* @var Guard
*/
protected $auth;

/**
* Create a new filter instance.
*
* @param Guard $auth
* @return void
*/
public function __construct(Guard $auth)
{
$this->auth = $auth;
}

/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$articleId = $request->segments()[1];
$article = Article::findOrFail($articleId);

if ($article->user_id !== $this->auth->getUser()->id) {
abort(403, 'Unauthorized action.');
}

return $next($request);
}
}
  1. 将其添加到app\Http\Kernel.php:
protected $routeMiddleware = [
'owner' => 'App\Http\Middleware\OwnerMiddleware',
];
  1. 在你的路由中使用中间件:
Route::group(['middleware' => ['owner']], function() {
// your route
});

关于php - Laravel 5 中间件 "Owner"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29733709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com