如何获取laravel模型中的所有记录

时间:2017-10-23 11:59:45

标签: php arrays laravel

我没有使用雄辩,我的模特就是这样。

class drivers extends Model
{
}

我想显示所有驱动程序的记录(每行一条记录)

我的驱动程序表包含字段driver_idnametyre_id

我的轮胎表中有字段(idtitle

我的银行表中包含字段iddriver_idbank

我希望我的记录是这样的......

Driver IdNameBank DetailsTyre Title

100000111AyerAvailableGO

..等等

对于银行详细信息,如果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这样的查询?

3 个答案:

答案 0 :(得分:0)

解决这个问题的好方法是拉平关系 这里的链接 crepl

选择驱动程序表作为基表,并使用关系来获取其他表字段; array_push()函数将值推送到数组

答案 1 :(得分:0)

另一种方法是使用带有连接的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();

答案 2 :(得分:0)

Laravel提供了两个非常有用的工具来执行数据库操作 eloquent 查询构建器。建议尽可能多地使用雄辩和他们的关系,因为它有助于我们通常需要执行的大部分常见操作。

现在,如果您想要创建更复杂的查询,您可以使用查询构建器,那么使用查询构建器的案例示例将是这样的:

在您的控制器中,您可以进行查询并将数据传递给视图:

 <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>

在您的视图中,您可以使用foreach循环来显示数据(并且您可以使用条件来显示银行字段):

             profile.setPreference("browser.helperApps.neverAsk.saveToDisk", 
            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;");

同样我建议您阅读eloquent的文档并尝试使用它。

https://laravel.com/docs/5.5/queries

https://laravel.com/docs/5.5/eloquent