Laravel Как я могу отклонить повторить два столбца в базе данных

У меня таблица такая же как:

id | u_id | f_id

и я вставил некоторые данные, такие как:

id   = 1;
u_id = 5;
f_id = 8;

У меня вопрос, как я могу отклонить вставку пользователя, если он пытается вставить те же данные?

-2

Решение

Всякий раз, когда новая модель сохраняется в первый раз, 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 увеличивать автоматически.

Надеюсь это поможет.

Источник

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]