2017-12-02 9 views
0

私は会社のすべての求人情報を表示したい。私は関係モデルを定義しました。クエリ構築の難易度

class Company extends Model 
{ 
    // 
    protected $fillable = [ 
     'user_id', 
     'name', 
     'company_size', 
     'slogan', 
     'website', 
     'logo', 
     'message_title', 
     'message_content', 
     'main_photo', 
     'about_us', 
     'why_us', 
     'recruiting_steps', 
     'address', 
     'email', 
     'phone_number', 
     'location', 
    ]; 
    public function Users(){ 
     return $this->hasMany('App\Models\User'); 
    } 
    public function job_posts(){ 
     return $this->hasMany('App\Models\JobPost', 'company_id'); 
    } 
} 

ジョブポストモデル:

class JobPost extends Model 
{ 
    protected $table = 'job_posts'; 

    protected $fillable = [ 
     'company_id', 
     'user_id', 
     'title', 
     'summary', 
     'description', 
     'requirements', 
     'benefits', 
     'approval', 
     'location', 
     'publish_date', 
     'expiration_date' 
    ]; 

    public function user() 
    { 
     return $this->belongsTo('App\Models\User'); 
    } 
    public function company() 
    { 
     return $this->belongsTo('App\Models\Company', 'company_id'); 
    } 
    public function cv_folders() 
    { 
     return $this->hasMany('App\Models\CvFolder'); 
    } 

} 

私の会社のコントローラのショー方法

public function show(Company $company) 
    { 
     // 
     $company = Company::find($company->id); 
     $JobPosts = $company->JobPosts; 
     return view('Companies.show', [ 
      'company' => $company, 
      'JobPosts' => $JobPosts, 

     ]); 
    } 

私の会社は閲覧:

@foreach($JobPosts as $jobPost) 
     <div class="col-md-12"> 
      <div class="box box-default box-solid"> 
       <div class="box-header with-border"> 
        <h3 class="box-title">{{$jobPost->title}}</h3> 
        <div class="box-tools pull-right"> 
         <button type="button" class="btn btn-box-tool" data-widget="collapse"><i 
            class="fa fa-minus"></i> 
         </button> 
        </div> 
        <!-- /.box-tools --> 
       </div> 
       <!-- /.box-header --> 
       <div class="box-body" style=""> 
        The body of the box 
       </div> 
       <!-- /.box-body --> 
      </div> 
      <!-- /.box --> 
     </div> 
    @endforeach 

が、私はエラーを取得

"foreachのために供給無効な引数()(閲覧:C:\ xamppの\ htdocsに\ hrlead \リソース\企業\ show.blade.php \ビュー)" 私を助けてください

答えて

1

名前の変更あなたの方法:へ

public function job_posts(){ 

public function jobPosts(){ 

と名前を変更

$JobPosts = $company->JobPosts; 

$JobPosts = $company->jobPosts; 

この後、それは動作するはずです。

0

間違った変数を呼び出しています。

$company->JobPostsではなく$company->job_postsである必要があります。 PHPは変数と関数の大文字小文字を区別します。