我有兩個型號稱爲項目和銷售,其中Laravel訪問外鍵使用雄辯Where子句
class Item extends Model
{
public function sale()
{
return $this->hasMany('App\Sale', 'sale_id');
}
}
和
class Sale extends Model
{
public function item()
{
return $this->belongsTo('App\Sale', 'item_id');
}
}
這是我的項目
public function up()
{
Schema::create('items', function (Blueprint $table) {
$table->increments('id');
$table->string('code');
$table->string('name');
$table->string('location');
$table->double('buy_price');
$table->double('sell_price');
$table->integer('quantity');
$table->timestamps();
});
}
和遷移文件銷售
public function up()
{
Schema::create('sales', function (Blueprint $table) {
$table->increments('id');
$table->date('date');
$table->integer('quantity');
$table->double('sell_price');
$table->double('subtotal');
$table->integer('item_id')->unsigned();
$table->timestamps();
});
Schema::table('sales', function (Blueprint $table) {
$table->foreign('item_id')->references('id')->on('items')
->onDelete('cascade')->onUpdate('cascade');
});
}
我記錄了每日銷售數據,以瞭解當天銷售的物品。因此我想每天查看銷售情況。這就是我在我的控制器中所做的。
class SaleController extends Controller
{
public function show($date)
{
$sales = Sale::where('date', $date)->get();
return view('sale.detail', compact('sales'));
}
}
最後,在我的刀,我這樣做是爲了調用項目的信息
@foreach($sales as $sale)
<tr>
<td>{{ $sale->item->code }}</td>
<td>{{ $sale->item->name }}</td>
<td>{{ $sale->sell_price }}</td>
<td>{{ $sale->quantity }}</td>
</tr>
@endforeach
最終我得到試圖讓非對象的屬性 有人能賜教我的代碼有什麼問題? 我在Laravel中比較新,但我很想嘗試不同的事情來看看這個框架可以做什麼。
非常感謝
你能分享銷售和物品表結構嗎?您可能想檢查是否所有結果都有相關的項目數據。如果你正在執行外鍵約束,這不應該發生。從錯誤中分享更多的行。 – Sandeesh
我已添加移民代碼 –