我剛開始學習Laravel,並且作爲我的首發者,我正在學習本教程視頻系列。 https://youtu.be/Y1TkLkGhHwA試圖瞭解Laravel中的表關係
我想了解這兩個表關係如何在模型級別工作。
Order.php
public function customer(){
return $this->belongsTo('App\Customer');
}
我有點明白這是Laravel如何使用belongsTo
方法使兩個表之間的關係。 (我只是接受它,因爲它是)
但是當我使用在其他模型該模型中,Order.php
定義customer()
功能變得對象實例的屬性($命令 - >客戶 - >名)(?)。這是一部分,我不明白或者只是缺乏OOP知識......
路線\ web.php
Route::get('orders',function(){
$orders = App\Order::all();
foreach($orders as $order){
echo $order->name . 'belongs to' . $order->customer->name;
我按照你的建議閱讀文檔,我有點不明白。謝謝(你的)信息。引用'當作爲屬性訪問Eloquent關係時,關係數據是「延遲加載」。這意味着關係數據在第一次訪問屬性之前並未實際加載。我另外有了Laravel提供的「急切加載」和「Lasy加載」的想法。再次感謝! – norixxx
我的榮幸,如果我的回答有助於您的查詢,請將其標記爲已解決。謝謝:) – EddyTheDove
我注意到,當使用Eager Load時,函數名必須與模型名相同。這是有效的:'public function customer()',但這不是'public function foo()'。我認爲這可能是任何名字。 – norixxx