我有同样的表:
id | u_id | f_id
我插入了一些数据:
id = 1;
u_id = 5;
f_id = 8;
我的问题是,如果他试图插入相同的数据,我该如何拒绝用户插入?
答案 0 :(得分:0)
每当首次保存新模型时,creating
和created
事件都会触发。如果数据库中已存在模型且调用了save
方法,则会触发updating
/ updated
个事件。但是,在这两种情况下,都会触发saving
/ saved
事件。
例如,让我们在service provider中定义一个Eloquent事件监听器。在我们的事件监听器中,我们将在给定模型上调用isValid
方法,如果模型无效,则返回false
。从Eloquent事件侦听器返回false
将取消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
会自动增加。
希望这有帮助。
<强> Source 强>