问这个很抱歉,但是我似乎找不到解决我问题的方法。我有以下代码:
<ngb-tabset #tabset>
<ngb-tab id="tab1" title="Signin">
<ng-template ngbTabContent>
<app-signin-container></app-signin-container>
</ng-template>
</ngb-tab>
<ngb-tab id="tab2" title="Login">
<ng-template ngbTabContent>
<app-login-container></app-login-container>
</ng-template>
</ngb-tab>
</ngb-tabset>
因此,在我的MySQL NewLeads表中,我希望实现这一目标(将潜在客户分配给用户,然后将下一个潜在客户分配给下一个用户,依此类推):
for($x=0; $x<=2; $x++){
$users = User::where('division', 1)
->where('has_been_assigned', null)
->first();
$assignedLead = NewLeads::where('pic_endorsed_to', null)
->first();
$assignedLead->pic_endorsed_to = $users->id;
$assignedLead->save();
}
相反,我得到这个:
id pic_endorsed_to (FKEY)
1 1
2 2
3 3
谁能告诉我如何达到预期的效果?
非常感谢您!
答案 0 :(得分:2)
为简便起见,请使用OP提供的代码(在撰写本文时):
$users = User::where('division', 1)
->where('has_been_assigned', null)
->get();
foreach ($users as $user){
$assignedLead = NewLeads::where('pic_endorsed_to', null)
->first();
if(assignedLead){
$assignedLead->pic_endorsed_to = $users->id;
$assignedLead->save();
}else{ break; }
}
我在这里所做的只是获取用户并将这些用户的ID分配给值为null的NewLeads。
在每个循环中,它将使用pic_endorsed_to提取第一行为null并将值更新为用户的id。
答案 1 :(得分:1)
这是因为您没有在循环内的任何地方使用$ x来使其动态化。 根据要求在某处使用$ x或先删除它。
答案 2 :(得分:0)
您每次都在->first();
上运行,而where子句没有任何动态条件,因此它将一次又一次地提取first
条记录。
答案 3 :(得分:0)
首先将->first()
更改为->get()
。
然后检查此行,并使用下面给出的代码对其进行更改:
where('pic_endorsed_to', null)
->first();
应该像
where('pic_endorsed_to', $mydetail)
->get();
答案 4 :(得分:0)
感谢您的投入。好像zahid的评论解决了我当前的问题:
您不更新用户。因此在每次迭代中,都有相同的用户。如果没有用户要分配该怎么办? – zahid hasan emon
只需用“ assigned”标记/更新用户状态。
谢谢大家!