2017-09-15 220 views
1

我有一個餐廳表和一個優惠表。一家餐廳可能有多個優惠。我正嘗試使用hasMany()方法創建Restaurant - Offers之間的關係。Laravel雄辯一對多關係

表結構:

1)餐廳

  • ID

  • 餐館名稱

2)提供

  • offer_id

  • restaurant_ID

  • OFFER_PRICE

代碼:在餐廳模型正在做這樣的事情

<?php 
namespace App; 

use Illuminate\Database\Eloquent\Model; 


class Restaurant extends Model 
{ 


    public function offer(){ 

     return $this->hasMany('Offer'); 
    } 
} 

和觀點,我想打印在視圖中使用

下面的代碼

foreach ($restaurants_data as $key => $value) { 

     print_r($value->offer); 
    ?> 

路線碼結果:

Route::get('/home/restaurants',function(){ 
    $restaurants = DB::table('restaurants')->simplepaginate(3); 
    return view('restaurants',['restaurants_data'=>$restaurants]); 
}); 

enter image description here

,但我沒有得到報價數據,我在哪裏出錯。謝謝。

+0

你沒有做什麼用'$值 - > offer' ... – Devon

+0

@Devon我試圖做的print_r。我已更正問題 – adi

+0

我建議您不要使用視圖來調試或測試模型。嘗試編寫測試用例或使用'artisan修補程序'。 – Devon

回答

1

如果你想在模型中定義的關係,你必須使用型號:

$restaurants = \App\Restaurant::simplePaginate(3); 

查詢生成器不返回模型實例,它返回stdClass的對象。

+0

我試過了,但對我沒有用。 我爲如下路線: 路線::得到( '/家庭/餐廳',函數(){// $餐廳= DB ::表( '餐館') - > simplepaginate(3); $ restaurants = \ App \ Restaurant :: simplePaginate(3); return view('restaurants',['restaurants_data'=> $ restaurants]); }); – adi

+0

這就是房產$優惠不確定的原因,如果您有其他問題,請爲此提出一個新問題。 – Devon

+0

增加了另一個問題https://stackoverflow.com/questions/46240903/issue-querying-laravel-eloquent-relationship – adi

0

在模型改變這樣的代碼:

<?php 
namespace App; 
use Illuminate\Database\Eloquent\Model; 
class Restaurant extends Model 
{ 
    public function offer(){  
     return $this->hasMany('Offer','restaurant_ID','id'); 
    } 
} 
+0

我試過這種方式,但沒有奏效。 – adi