У меня таблица такая же как:
id | u_id | f_id
и я вставил некоторые данные, такие как:
id = 1;
u_id = 5;
f_id = 8;
У меня вопрос, как я могу отклонить вставку пользователя, если он пытается вставить те же данные?
Всякий раз, когда новая модель сохраняется в первый раз, creating
а также created
События начнутся. Если модель уже существует в базе данных и save
метод называется, updating
/ updated
События начнутся. Однако в обоих случаях saving
/ saved
События начнутся.
Например, давайте определим прослушиватель событий Eloquent в поставщик услуг. В нашем слушателе событий мы будем называть isValid
метод по заданной модели и возврат false
если модель не действительна. возврате false
от Eloquent слушатель события отменит save
/ update
операция.
<?php
namespace App\Providers;
use App\YourModel;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
YourModel::saving(function ($yourModel)
{
if ( ! $yourModel->isValid() )
return false;
});
}
}
В вашей модели добавить isValid()
функция, внутри этой функции вы добавите ваше условие:
public function isValid()
{
if( $this->u_id = 5 && $this->f_id == 8)
return false;
else
return true;
}
НОТА : Я думаю, что id
увеличивать автоматически.
Надеюсь это поможет.
Других решений пока нет …