[英]In Laravel (5.3), how do I perform a loop through two separate DB tables and send the results into a view?
我對 Laravel 非常陌生,所以如果這是一個愚蠢的問題,請耐心等待。
這就是我最終想要做的。
我有兩個數據庫表:Categories 和 FoodItems。 為了簡單起見,讓我們說一下,我在 Categories 表中有兩個類別(開胃菜和三明治),在 FoodItems 表中有 3 個項目:
我有一個視圖,我想首先顯示所有類別,然后顯示該類別中的所有項目。
所以我的觀點會顯示:
開胃菜:
- 洋蔥圈
- 奶酪棒
三明治:
- 漢堡包
我無法弄清楚如何遍歷這兩個表,執行嵌套的 DB 調用,然后將此結構發送到我的視圖中,而不在視圖中實際執行任何邏輯。
有人能告訴我這里的最佳實踐是什么,將我訂購的數據納入我的視野嗎?
編輯/額外信息:
只是為了讓大家知道我在哪里(我還在掙扎)。 這是我所有的代碼。
首先,我設置了兩個數據庫表。 第一個稱為“ foodItems ”,第二個稱為“ foodCategories ”。
foodItems表包含以下列:
id、uniqueID、categoryID、clientID、itemName、itemDescription、itemAlias、thumbURL、itemSize、itemCost、itemPrice、isTaxable、hasSizes、hasDescriptors、status、created_at、updated_at
foodCategories表包含以下列:
id、uniqueID、clientID、categoryName、categoryAlias、status、created_at、updated_at
接下來,我有兩個型號,FoodItem和FoodCategory。
我的FoodItem模型中的代碼如下所示:
namespace App;
use Illuminate\Database\Eloquent\Model;
class FoodItem extends Model {
protected $table = 'foodItems';
public function foodCategory(){
return $this->belongsTo('App\FoodCategory');
}
}
我的FoodCategory模型中的代碼如下所示:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class FoodCategory extends Model {
protected $table = 'foodCategories';
public function foodItem() {
return $this->hasMany('App\FoodItem');
}
}
我的控制器中的代碼如下所示:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use App\FoodCategory;
use App\FoodItem;
class DashboardController extends Controller {
public function __construct(){
$this->middleware('auth');
}
public function food() {
$food_items = FoodItem::orderBy('categoryID')->get();
return view('food', compact('food_items'));
}
}
最后,我的視圖(food.blade.php)中的代碼是:
@foreach ($food_items as $food)
<li>{{ $food->foodCategory->categoryName }}</li>
@endforeach
在我看來,我嘗試在“ foodCategory ”之后使用括號,我嘗試將名稱更改為“FoodCategory”、“FoodCategory()”、“foodCategories()”、“foodCategories”……以及我可以使用的所有其他組合想到 - 但似乎沒有任何效果。
由於代碼現在是,它會產生以下錯誤:
“試圖獲取非對象的屬性(視圖:/Applications/XAMPP/xamppfiles/htdocs/Laravel/ChanceSystems2017/resources/views/food.blade.php)”
在這一點上我真的很難過。 任何人都可以對我缺少的東西有所了解嗎? 謝謝!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.