我没有使用eloquent,我的模型是这样的。
class drivers extends Model
{
}
我想显示所有司机的记录(每行一条记录)
我的driver表有字段(driver_id
,name
,tyre_id
)
我的tyre表有字段(id
,title
)
我的银行表有字段(id
、driver_id
、bank
)
我希望我的记录是这样的...
驾驶员 ID
、姓名
、银行详细信息
、轮胎名称
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 提供了两个非常有用的工具来执行数据库操作eloquent 和查询生成器。建议尽可能多地使用 eloquent 及其关系,因为这有助于我们通常需要执行的许多常见操作。
现在,如果您想进行更复杂的查询,您可以使用查询构建器,另外,使用查询构建器的案例示例如下:
在 Controller 中进行查询并将数据传递给 View :
$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>
同样,我建议您阅读 eloquent 的文档并尝试使用它。
关于php - 如何获取laravel模型中的所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46888827/