2017-10-09 43 views
0

你好傢伙我需要幫助!!! 所以我有3種型號:機械,Prod_model和集團 機型號:Laravel:關係方法必須返回一個類型爲Illuminate Database Eloquent Relations Relation的對象

namespace App; 

use Illuminate\Database\Eloquent\Model; 


class Machine extends Model 
{ 
    public $incrementing = false; 
    protected $primaryKey = "machine_no"; 

    public function prod_model(){ 
     return $this->hasMany('App\Prod_model','machine_id','machine_no'); 
     } 

    public function marque(){ 
     return $this->belongsTo('App\Marque'); 
    } 
} 

Prod_model型號:

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Prod_model extends Model 
{ 
    public $incrementing = false; 
    protected $primaryKey ="model_no"; 

    public function m_group(){ 
    return $this->hasMany('App\Group'); 
    } 

    public function machine(){ 
    return $this->belongsTo('App\Machine'); 
    } 
} 

所以,當我試圖通過我的Prod_models訪問我的組,這個代碼

@foreach($machines as $machine) 
      <ul> 
      <li> 
       @if($machine->cat_lvl == 1 && $machine->lowest_yn == 'Y') 
       <input type="checkbox" id="{{ $machine->machine_no }}" /><label for="{{ $machine->machine_no }}">{{ $machine->cat_name }}</label> 
       <ul> 
          @foreach($machine->prod_model as $model) 
         <li> 
          <input type="checkbox" id="{{ $model->model_no }}" /><label for="{{ $model->model_no }}">{{ $model->model_name}}</label> 
          <ul> 
          @foreach($model->m_group as $group) 

           <li> 
           <input type="checkbox" id="{{ $group->id }}" /><label for="{{ $group->id }}">{{ $group->group_name}}</label> 
           <ul> 
           @foreach($group->figure as $figure) 
            <li><a onclick="load_main_content('{{ $figure->id }}');">{{ $figure->figure_name}}</a></li> 
           @endforeach 
           </ul> 
           </li> 
          @endforeach 
          </ul> 
         </li> 
          @endforeach 
         </ul> 
       @endif 
      </li> 
      </ul> 
      @endforeach 

我得到這個錯誤R elationship方法必須返回一個類型爲Illuminate \ Database \ Eloque的對象nt \ Relations \ Relation。甚至當它通過機器模型訪問我的prod_models時它正常工作,但當我試圖通過我的prod_models訪問我的組時,它不起作用。你能幫助我嗎?

+0

請把你的完整的錯誤上的問題和請上CodeStyle – honarkhah

+0

使用PSR-2的arent你試圖用一個函數作爲一個屬性不應該'$機 - > prod_model'是'$機 - > prod_model()'? –

+0

在laravel框架你可以使用它們兩個,$ machine-> prod_model執行一個關係並返回結果,但$ machine-> prod_model()返回關係,然後你可以使用 - > get() – honarkhah

回答

0

Prod_model型號:

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Prod_model extends Model 
{ 
    public $incrementing = false; 
    protected $primaryKey ="model_no"; 

    public function m_group(){ 
    return $this->hasMany('App\Group'); 
    } 

    public function machine(){ 
    return $this->belongsTo('App\Machine','machine_no','machine_id'); 
    } 
} 
+0

也許添加爲什麼添加'machine_no,machine_id'? –

+0

你可以給你的數據分析方案 – honarkhah

+0

我會發布我的遷移 –

相關問題