我可以在laravel 5.5 中制定和使用规则,但我需要使用$属性,$ value,$ id,$ flag,$ flag,另一个属性甚至偶数的其他参数进行验证DB本身,例如验证独特,但有些不同
我已经在互联网上搜索了
public function __construct($id)
{
$this->id = $id;
}
public function passes($attribute, $value)
{
$modal = ledger::where('id', $this->id)->first();
$ledger = ledger::where('id','!=', $modal->id )->where(['fk_id'=>"$modal->fk_id", 'flag'=>'1', $attribute=>$value])->first();
if($ledger == 'null')
{
return true;
}
}
我想要DB_NAME,标志值和属性FK_ID可以用输入替换。
我已经答案
在我的控制器中,我使用此
public function update(Request $request, $id)
{
$this->validate($request, [
'mssl_kode' => [new msslRules($id, 'ledger', 'id', 'fk_id', 'flag')],
]);
//others script
}
然后在我的规则中我使用此
public function __construct($id, $db, $id2, $fkid, $flag)
{
$this->id = $id;
$this->db = "\App\".$db;
$this->id2 = $id2;
$this->fkid = $fkid;
$this->flag = $flag;
}
public function passes($attribute, $value)
{
$id2 = $this->id2;
$fkid = $this->fkid;
$modal = $this->db::where($id2, $this->id)->first();
$ledger = $this->db::where($id2,'!=', $modal->$id2 )->where([$fkid=>$modal->$fkid, $this->flag=>'1', $attribute=>$value])->first();
if($ledger == null)
{
return true;
}else
{
return false;
}
}
我希望它对其他人有帮助