大大們好!小弟想請教一下:任何意見感恩在先
我有一個 Laravel test.com 項目,用戶可以發表文章、修改文章...
資料庫的articale 表中 有 uid 字段 紀錄 articale的作者
我定義一個 resource 路由
Route::resource('articale', 'ArticaleController');
假設:
uid 1 用戶 有 articale 1、2、3
uid 2 用戶 有 articale 4、5、6
我在 ArticalController 的 edit 方法中 寫如下代碼
public function edit(Request $request, Aticale $aticale)
{
$user = $request->user();
if ($user->id == $articale->uid) {
return view('user.articaleEdit', compact('articale', $articale));
} else {
return redirect('/')->with('flash_alert', '錯誤操作,拒絕訪問!');
}
}
用戶登入可以修改文章:
uid 1 用戶 若正常使用網頁鏈接打開文章都正常,若打開第1篇文章網址如這樣:
http://test.com/1/edit // 參數1 代表 第1篇文章
問題是:
用戶若自己從網址列更改 參數為 2 或 3 文章內容會跟著變動,但除1、2、3 之外的任何參數都將變阻止,並導回首頁,(相同地 uid 2 用戶也只能修改自己的文章)
若我想要做到的是:
不允許 用戶從網址列自行更改參數
請教一下大大!我該怎麼做?