как сделать пользовательскую проверку, используя 3 или более параметра с именем Db в laravel 5.5 - PullRequest
0 голосов
/ 15 февраля 2019

Я могу создать и использовать правило для верификации в laravel 5.5+, но мне нужно проверить с большим количеством параметров, кроме $ attribute, $ value, $ id, который является $ 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 заменялись вводом.

1 Ответ

0 голосов
/ 18 февраля 2019

У меня уже есть мой ответ

в моем контроллере. Я использую это

 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;
    }
}

Я надеюсь, что это поможетостальные

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...