laravel刀片中的一个Foreach循环中的多个变量传递

时间:2018-12-12 21:20:49

标签: php laravel laravel-5.5 laravel-blade

我在控制器中有两个变量:

$data = S_core_Country::all();
$cn=\DB::table('s_user_addresses')
   ->join('s_users', 's_users.id', '=', 's_user_addresses.user_id')
   ->join('s_core_countries', 's_core_countries.id', '=', 's_user_addresses.country_id')
   ->value('countryname');                                       

return view('home')->with(['data'=>$data,'cn'=>$cn]);

是否可以像这样在foreach循环中查看数据

@foreach($data as $data && $cn as $cn)

如果不是,我应该在一个foreach循环中显示那两个变量吗?

2 个答案:

答案 0 :(得分:1)

对于合并和合并数组,您可以尝试:

$array = array_merge($array1,$array2);

刀片中的示例:

@foreach(array_merge($array1,$array2) as $item)
    // ...
@endforeach

另一个例子:

@foreach($array1 as $key => $row)
    <li>
        <b>{{ $row['id'] }}</b>
        <p>{{ $array2[$key]->payment }}</p>
    </li>
@endforeach

相关链接:


&&运算符(和)是逻辑运算符。

  

$ a && $ b如果$ a和$ b都为TRUE,则为TRUE。

答案 1 :(得分:0)

不幸的是,那个foreach无效的PHP或Blade语法。

要充分利用Laravel框架,我要做的就是使用Eloquent ORM在用户,地址和国家/地区之间建立关系。然后,在刀片模板中,您应该可以执行以下操作:

如果$ data包含用户:

@foreach($data as $user)
  $user->address->country->countryname
@endforeach

当然,这取决于您在用户,国家和地址模型中定义的关系。

您的UserModel可能包含的示例:

public function address()
{
  return $this->hasOne('UserAddress', 'foreign_key', 'local_key');
}

以上代码仅是示例,显然您需要用正确的值替换它。请参考Laravel Documentation on Relationships,但我绝对认为建立适当的ORM关系将是解决问题的方法,至少我要这样做。