我正在创建一个网站,让用户列出多达5家公司,他们是相关的。当其他用户搜索这些公司时,所有与该公司相关的用户都会出现在搜索结果中。
公司将由用户通过文本输入字段提交。
如何避免用户提交重复的公司?例如,如果UserA提交了一个名为堆栈溢出的公司,那么UserB也会提交堆栈溢出,那么我的数据库中就会有2个堆栈溢出。
我有三张桌子:
用户表
id/用户名/电子邮件
公司表
id=公司名称
UsersCompany表
id_。
我用的是Laravel 5
发布于 2016-03-23 01:51:41
发布于 2016-05-27 10:57:59
你只要简单地检查一下就可以了。如果公司不存在,则创建新公司或将公司附加到用户。
我想,这些公司是在一个单一的文本输入,分开的逗号,你已经建立了你的关系正确。如果不检查,请检查这。
示例:
// Inside your controller
public function post_something(Request $request)
{
// Always good to validate
$this->validate(....);
// Somehow get your user model
$user = ....
// Get companies input and loop
$company_names = $request->input('company_names');
$company_names = explode(',', $company_names );
foreach ($company_names as $company_name)
{
$company = Company::firstOrCreate(['company_name' => $company_name]);
$user->companies()->attach($company);
}
// Your other stuff
//
....
}发布于 2016-05-25 06:41:12
这可以通过在company_Name上创建主键或惟一键来实现。
ALTER TABLE company_Table ADD PRIMARY KEY(company_Name)
ALTER TABLE company_Table ADD UNIQUE (company_Name)或
IF NOT EXISTS(QUERY) Then INSERT或
Create BEFORE INSERT trigger .http://dev.mysql.com/doc/refman/5.7/en/trigger-syntax.htmlhttps://stackoverflow.com/questions/36166925
复制相似问题