Php Laravel我如何拒绝重复数据库中的两列
我有同样的桌子,比如:Php Laravel我如何拒绝重复数据库中的两列,php,validation,laravel,laravel-5.2,Php,Validation,Laravel,Laravel 5.2,我有同样的桌子,比如: id | u_id | f_id 我插入了一些数据,如: id = 1; u_id = 5; f_id = 8; 我的问题是,如果用户试图插入相同的数据,我如何拒绝用户插入?每当第一次保存新模型时,创建和创建事件都会触发。如果数据库中已经存在模型,并且调用了save方法,则将触发更新/更新事件。但是,在这两种情况下,保存/保存的事件都将触发 例如,让我们在中定义一个雄辩的事件侦听器。在事件侦听器中,我们将对给定模型调用isValid方法,如果模型无效,则返回fal
id | u_id | f_id
我插入了一些数据,如:
id = 1;
u_id = 5;
f_id = 8;
我的问题是,如果用户试图插入相同的数据,我如何拒绝用户插入?每当第一次保存新模型时,创建和创建事件都会触发。如果数据库中已经存在模型,并且调用了save方法,则将触发更新/更新事件。但是,在这两种情况下,保存/保存的事件都将触发 例如,让我们在中定义一个雄辩的事件侦听器。在事件侦听器中,我们将对给定模型调用isValid方法,如果模型无效,则返回false。从有说服力的事件侦听器返回false将取消保存/更新操作
<?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;
});
}
}
注意:我猜id会自动递增
希望这有帮助
在数据库表上放置唯一约束。这很快就会成为标志。
public function isValid()
{
if( $this->u_id = 5 && $this->f_id == 8)
return false;
else
return true;
}