我有两个数据库;第一个数据库包含一个名为product的表,其中包含id,状态和已删除。
第二个数据库包含一个名为product的表,其中包含id,id_product,名称,价格。
我使用以下验证规则uniq:
Codable
它很好用,但是如果我想使用以下独特功能创建条件:
$this->validate($request,[
'name' =>'required|max:25|min:1|unique:mysql2.products,name|alpha',
'price' =>'required'
]);
我如何制作一个独特的函数来接受
之类的条件"select * from `product` where `name`=? AND `status`=? and `deleted `=?",array($name,1,1)
答案 0 :(得分:0)
您可以创建一个Custom Rule:
php artisan make:rule UniqueActive
然后在您新创建的课程中:
app / Rules / UniqueActive.php
namespace App\Rules;
use Illuminate\Contracts\Validation\Rule;
class Uppercase implements Rule
{
/**
* Determine if the validation rule passes.
*
* @param string $attribute
* @param mixed $value
* @return bool
*/
public function passes($attribute, $value)
{
return ! Product
::where('name', '=', $value)
::where('status', 1)
::where('deleted', 1)
::exists();
}
/**
* Get the validation error message.
*
* @return string
*/
public function message()
{
return 'The :attribute is not unique.';
}
}
然后在您的控制器中:
use App\Rules\UniqueActive;
//
$this->validate($request,[
'name' => ['required', 'max:25', 'min:1', 'alpha', new UniqueActive],
'price' => 'required', // ^^^^^^^^^^^^^^
]);