當我嘗試更新帖子時,如果我不更改 slug 的值,laravel 會返回此錯誤:蛞蝓已經被拿走了。這是我的驗證:$this->validate($request, [ 'name' => 'required', 'content' => 'required', 'excerpt' => 'required', 'type' => 'required', 'slug' => 'required | unique:providers']);
3 回答

慕尼黑的夜晚無繁華
TA貢獻1864條經驗 獲得超6個贊
當您更新記錄并添加唯一驗證時。您應該傳遞要插入的記錄的id。
更新時
'slug' => 'required | unique:providers,slug,'.$providerId
插入時
'slug' => 'required | unique:providers'

浮云間
TA貢獻1829條經驗 獲得超4個贊
您需要告訴驗證器對您正在更新的當前實體進行異常處理。
$this->validate($request, [
'name' => 'required',
'content' => 'required',
'excerpt' => 'required',
'type' => 'required',
'slug' => 'required|unique:providers,slug,'.$providerId
]);

慕村9548890
TA貢獻1884條經驗 獲得超4個贊
添加時:
use Illuminate\Support\Str;
.
.
$slug = Str::slug($request->name, '-');
$exists = Provider::where('slug', $slug)->first();
if($exists) {
$slug = $slug.'-'.rand(1000,9999);
}
更新時:
$request->validate([
'slug' => 'required|unique:providers,slug,'.$provider_id.',id',
]);
- 3 回答
- 0 關注
- 188 瀏覽
添加回答
舉報
0/150
提交
取消