[英]How to get all records in laravel Models
我使用的不是雄辩的,我的模型是这样的。
class drivers extends Model
{
}
我想显示所有驱动程序的记录(每行一条记录)
我的驱动程序表具有字段( driver_id
, name
, tyre_id
)
我的轮胎表有字段( id
, title
)
我的银行表格有字段( id
, driver_id
, bank
)
我希望我的记录像这样...
Driver Id
, Name
, Bank Details
, Tyre Title
100000111
, Ayer
, Available
100000111
, GO
..等等
对于银行详细信息,如果driver_id在银行表中有记录,则应显示可用,否则为N / A。
$drivers= Drivers::get();
$myarray = ();
foreach ($drivers as $d){
$bank = Bank::where('driver_id',$d->driver_id)->first();
$tyre = Tyre::where('id',$d->tyre_id)->first();
$myarray[] = $d->driver_id;
$myarray[] = $d->name;
$myarray[] = isset($bank) ? "available" ; '';
$myarray[] = $tyre->title;
}
这是我尝试过的方法,我是laravel的新手,如何在laravel中或使用诸如DB Table的查询实现此目的?
解决此问题的好方法是laravel关系,这里链接laravel文档
选择驱动程序表作为基础表,并使用关系来获取其他表字段; array_push()函数将值推入数组
另一种方法是将DB Facade与联接一起使用:像这样:
$users = DB::table('users')
->join('contacts', 'users.id', '=', 'contacts.user_id')
->join('orders', 'users.id', '=', 'orders.user_id')
->select('users.*', 'contacts.phone', 'orders.price')
->get();
Laravel提供了两个非常有用的工具来雄辩地执行数据库操作和查询生成器 。 建议尽量与雄辩者及其关系保持合作,因为这有助于我们通常需要执行的许多常见操作。
现在,如果您要进行更复杂的查询,则可以使用查询构建器,例如,使用查询构建器的案例示例如下:
在您的控制器中 ,进行查询并将数据传递给查看:
$data = DB::table('driver')
->leftJoin('bank', 'bank.driver_id','=', 'driver.driver_id')
->join('tyre', 'tyre.id','=', 'bank.tyre_id')
->select('driver.driver_id as id',
'driver.name',
'bank.id as bank_id',
'tyre.title')
->groupBy('driver.driver_id')
->get()
并且在您的视图中,您可以使用foreach循环来显示数据(并且您可以使用条件来显示库字段):
<table>
<thead>
<tr>
<th>Driver ID</th>
<th>Name</th>
<th>Bank Detail</th>
<th>Tyre Title</th>
</tr>
</thead>
<tbody>
@foreach($data as $item)
<tr>
<td>{{ $item->id }}</td>
<td>{{ $item->name }}</td>
<td>{{ isset($item->bank_id) ? "availible":"N/A" }}</td>
<td>{{ $item->title }}</td>
</tr>
@endforeach
</tbody>
</table>
同样,我建议您阅读雄辩的文档并尝试使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.