在 laravel blade 中的一个 Foreach 循环中传递多个变量
Multiple variable pass in one Foreach loop in 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 循环中显示这两个变量?
不幸的是,foreach 的 PHP 或 Blade 语法无效。
为了充分利用 Laravel 框架,我会做的是使用 Eloquent ORM 在用户、地址和国家/地区之间建立关系。然后在你的 blade 模板中,你应该能够做这样的事情:
如果 $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 关系是解决问题的方法,至少我会这样做。
对于合并和合并数组,您可以尝试:
$array = array_merge($array1,$array2);
blade 中的示例:
@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
相关链接:
https://codereview.stackexchange.com/questions/70419/combining-two-arrays-using-nested-foreach-loops
https://knackforge.com/blog/sabareesh/iterate-2-arrays-single-foreach-loop
https://www.w3schools.com/php/showphp.asp?filename=demo_func_array_merge
&& 运算符(与)是逻辑运算符。
$a && $b And TRUE if both $a and $b are TRUE.
我在控制器中有两个变量:
$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 循环中显示这两个变量?
不幸的是,foreach 的 PHP 或 Blade 语法无效。
为了充分利用 Laravel 框架,我会做的是使用 Eloquent ORM 在用户、地址和国家/地区之间建立关系。然后在你的 blade 模板中,你应该能够做这样的事情:
如果 $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 关系是解决问题的方法,至少我会这样做。
对于合并和合并数组,您可以尝试:
$array = array_merge($array1,$array2);
blade 中的示例:
@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
相关链接:
https://codereview.stackexchange.com/questions/70419/combining-two-arrays-using-nested-foreach-loops
https://knackforge.com/blog/sabareesh/iterate-2-arrays-single-foreach-loop
https://www.w3schools.com/php/showphp.asp?filename=demo_func_array_merge
&& 运算符(与)是逻辑运算符。
$a && $b And TRUE if both $a and $b are TRUE.