我有两张 table
1. menu
id - menu_name - menu_url
1 - Home - index
2 - About - about
3 - Services -
4 - Contact - contact
2. submenu
id - menu_name - submenu_name
1 - Services - Web Development
2 - Services - Web Designing
3 - Services - Logo Designing
4 - Services - SEO
为此,我在 php 中创建了此查询
$query = mysqli_query($con,"SELECT * FROM menu");
while ($row = mysqli_fetch_assoc($query)){
if ($row['menu_url'] == ''){
$subquery = mysqli_query($con,"SELECT * FROM submenu WHERE
menu_name = '".$row['menu_name']."'");
while ($row1 = mysqli_fetch_assoc($subquery)){
//do something here
}
}else{
//do something here
}
}
我的问题是如何在 laravel 中执行此查询?
我的 Controller 查询
$menu = menu::all();
$submenu = submenu::where('menu_name','i want the $menu->menu_name variable here')->get();
如何在第二个查询中获取该变量。
提前致谢,如有任何帮助,我们将不胜感激。
最佳答案
更有效的方法:
$all_sub_menu = Submenu::get();
$all_sub_menu = collect($all_sub_menu)->groupBy('menu_name');
foreach( $menu as $m ) // To get the individual records
{
if(isset($all_sub_menu[$m->menu_name]){
$sub_menu = $all_sub_menu[$m->menu_name];
// you will get submenu for the current menu without requesting the database again and again
}
else{
$sub_menu = array();
}
}
关于mysql - 如何在 laravel 中编写此查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52811399/