Laravel 每个公司的唯一部门
Laravel unique department for each company
我有一个 table 命名部门,其中 2 列 1.名称 2.公司,我想对单个公司的名称应用验证。
public function store(Request $request)
{
$company = Auth::user()->company_id;
$this->validate($request, [
'company'=>'unique:departments,company',
]);
$department = Department::create([
'name' => $request->name,
'company' => $request->company,
]);
}
部门的预期结果是
name company
======================
Accounts 1
Purchase 1
Accounts 2
Sales 2
Accounts 2 //wrong i want validation here
Purchase 1 //wrong i want validation here
这是唯一验证的格式 unique:table,column,except,idColumn
详细信息 https://laravel.com/docs/5.6/validation#rule-unique。
并添加额外的 where 条件,它将像这样 unique:table,column,except,idColumn,anotherColumn,anotherColumnValue
对部门名称添加验证
public function store(Request $request)
{
//If getting company from request
$company = $request->company;
//if getting company from auth user
$company = Auth::user()->company_id;
$request->validate([
'name' => 'required|max:255|unique:departments,name,NULL,id,company,'. $company
]);
$department = Department::create([
'name' => $request->name,
'company' => $company,
]);
}
注意:最好将部门中的 company
列名称更改为 company_id
,因为您要在其中存储公司 ID。
所以,关系是多对多?每个公司都有相同的部门组。
我建议建立新关系 table。将是 company_department
,至少包含 2 列:department_id
和 company_id
- 这样,您将轻松管理数据,也可以轻松查询以访问数据库。
希望有用。
我有一个 table 命名部门,其中 2 列 1.名称 2.公司,我想对单个公司的名称应用验证。
public function store(Request $request)
{
$company = Auth::user()->company_id;
$this->validate($request, [
'company'=>'unique:departments,company',
]);
$department = Department::create([
'name' => $request->name,
'company' => $request->company,
]);
}
部门的预期结果是
name company
======================
Accounts 1
Purchase 1
Accounts 2
Sales 2
Accounts 2 //wrong i want validation here
Purchase 1 //wrong i want validation here
这是唯一验证的格式 unique:table,column,except,idColumn
详细信息 https://laravel.com/docs/5.6/validation#rule-unique。
并添加额外的 where 条件,它将像这样 unique:table,column,except,idColumn,anotherColumn,anotherColumnValue
对部门名称添加验证
public function store(Request $request)
{
//If getting company from request
$company = $request->company;
//if getting company from auth user
$company = Auth::user()->company_id;
$request->validate([
'name' => 'required|max:255|unique:departments,name,NULL,id,company,'. $company
]);
$department = Department::create([
'name' => $request->name,
'company' => $company,
]);
}
注意:最好将部门中的 company
列名称更改为 company_id
,因为您要在其中存储公司 ID。
所以,关系是多对多?每个公司都有相同的部门组。
我建议建立新关系 table。将是 company_department
,至少包含 2 列:department_id
和 company_id
- 这样,您将轻松管理数据,也可以轻松查询以访问数据库。
希望有用。