簡體   English   中英

如何顯示數據庫中的所有行-Laravel 5.2?

[英]How to display all row in database - Laravel 5.2?

我的Laravel應用程序有一個簡單的問題,但找不到任何解決方案,請在此處查看我的代碼:

控制器:

public function index(){
    $members = Member::paginate(15);

    $meal_entry = Member::all();
    $breakfast = DB::SELECT("SELECT self_meal_breakfast + guest_meal_breakfast AS breakfast FROM meal_entry");
    $lunch = DB::SELECT("SELECT self_meal_lunch + guest_meal_lunch AS lunch FROM meal_entry");        
    $dinner = DB::SELECT("SELECT self_meal_dinner + guest_meal_dinner AS dinner FROM meal_entry");
    $total_meal = DB::SELECT("SELECT self_meal_breakfast + self_meal_lunch + self_meal_dinner + guest_meal_breakfast + guest_meal_lunch + guest_meal_dinner AS total FROM meal_entry");

    return view('member.mealView', compact('members','data','breakfast','lunch','dinner','meal_entry','total_meal'));
}

刀片視圖:

<tbody>
    <tr>
        @foreach($meal_entry as $value)
        <td>{{ $value->created_at }}</td>
        @endforeach                                        
        @foreach($breakfast as $value)
        <td>{{ $value->breakfast }}</td>
        @endforeach                                        
        @foreach($lunch as $value)
        <td>{{ $value->lunch }}</td>
        @endforeach                                        
        @foreach($dinner as $value)
        <td>{{ $value->dinner }}</td>
        @endforeach                                        
        @foreach($total_meal as $value)
        <td>{{ $value->total }}</td>
        @endforeach                                        
        @foreach($meal_entry as $value)
        <td>{{ $value->created_at }}</td>
        @endforeach
    </tr>
</tbody>

並在表中: meal_entry

如果數據庫中有row ,則可以查看請參閱 )。但是如果row多於一行,則其所有數據都顯示在row請參閱 )。我該如何處理呢? 我認為應該運行另一個循環,但是我該怎么做呢? 提前致謝。

因此,如果您使用的是Laravel,則具有的最佳功能之一就是訪問器:

https://laravel.com/docs/5.2/eloquent-mutators#accessors-and-mutators

您可以創建新屬性並將其用作模型屬性。

對於某些東西非常有用。

class Meal extends Model
{
    public function getTotalBreakfastAttribute()
    {
        return $this->self_meal_breakfast + $this->guest_meal_breakfast;
    }
}

然后,將此訪問器用作屬性:

<tbody>
   @foreach($foods as $value)
    <tr>
       <td> {{$value->total_breakfast}} </td> 
       <td> {{$value->created_at}} </td>
    </tr>
  @endforeach
</tbody>

或者,如果您不想這樣做,則可以使用一個示例,因為所有字段都在同一個表中,而不是使用多個查詢來獲取數據,然后可以使用上面的示例。

請享用! :)

一個快速的修補程序是只執行一個查詢,然后在視圖上進行計算(我知道這不是在視圖中進行計算的好習慣,但這是我能看到的最簡單的方法)。

就像這樣:

控制器:

public function index(){
    $members = Member::paginate(15);

    return view('member.mealView', compact('members'));
}

刀片視圖

<tbody>
    @foreach($members as $meal_entry)
    <tr>
        <td>{{ $meal_entry->created_at }}</td>

        <td>{{ $breakfast = $meal_entry->self_meal_breakfast + $meal_entry->guest_meal_breakfast }}</td>

        <td>{{ $lunch = $meal_entry->self_meal_lunch+ $meal_entry->guest_meal_lunch}}</td>

        <td>{{ $dinner = $meal_entry->self_meal_dinner + $meal_entry->guest_meal_dinner }}</td>

        <td>{{ $breakfast + $lunch + $dinner }}</td>

        <td>{{ $meal_entry->created_at }}</td>
    </tr>
    @endforeach 
</tbody>

並記得添加

{{ $members->links() }}

您想要分頁鏈接的位置。

暫無
暫無

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

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