簡體   English   中英

如何在Laravel模型中獲取所有記錄

[英]How to get all records in laravel Models

我使用的不是雄辯的,我的模型是這樣的。

class drivers extends Model
{
}

我想顯示所有驅動程序的記錄(每行一條記錄)

我的驅動程序表具有字段( driver_idnametyre_id

我的輪胎表有字段( idtitle

我的銀行表格有字段( iddriver_idbank

我希望我的記錄像這樣...

Driver IdNameBank DetailsTyre Title

100000111AyerAvailable 100000111GO

..等等

對於銀行詳細信息,如果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>

同樣,我建議您閱讀雄辯的文檔並嘗試使用它。

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM