2017-01-16 11 views
0

私はすべての仕事の投稿データを返すメソッドを持っています。Laravel 5.2のコレクションから関連モデルを取得するにはどうすればよいですか?

public function show($id) 
{ 
    $applicantData = Applicant::whereId($id)->first(); 
    $jobData = Job::all(); 
    //dd($jobData); 
    //dd($jobData->job_title); 
    return view('applicant.confirmation',compact("applicantData","jobData")); 
} 

dd($jobData);returnsを::

image of jobData

dd($jobData->job_title);それがエラーを返します:

ErrorException in ApplicantController.php line 150: Undefined property: Illuminate\Database\Eloquent\Collection::$job_title

にはどうすれば$jobData->job_title値を得ることができますこれは私が試してみました何ですか?

+2

'$ jobData->最初の() - >最初のジョブのタイトルjob_title'。コレクションは配列のようなものです。それはすべての項目を含んでいます。 –

+0

@CerlinBoss最初に 'job_title'が返されます。' job_id'を何かに変更しても、常に最初の 'job_title'をkeppします。 –

+0

あなたのjobdataテーブル構造を見せてください – msonowal

答えて

1
public function show($id) 
{ 
    $applicantData = Applicant::whereId($id)->first(); 
    $jobData = Job::find($applicantData->job_id); //this will give you the job 
    dd($jobData); 
    dd($jobData->job_title); 
    return view('applicant.confirmation',compact("applicantData","jobData")); 
} 
+0

これは私が探しているものです。受け入れました。:) –

1

すべての行が返されるので、$jobDataをループする必要があります。次のようなものがあります。

$jobData = Job::all(); 
foreach ($jobData as $job) { 
    echo $job->job_title; 
} 
1

これらはオブジェクトの配列なので、値を直接取り出すことができます。あなたが$jobData[0]->job_title$jobData->first()->job_titleその後、最初の項目を必要とするか、またはあなたの場合はできるループforeach($jobData as $data){$data->job_title}

1

$jobDataはそうあなたが直接$jobData->job_titleようjob_titleにアクセスすることはできませんcollectionです。私はあなたのビューファイルでそれらにアクセスしたいと思います。したがって、あなたが使用してコレクションを反復処理する必要があり

@foreach($jobData as $job) 
    {{ $job->job_title }} 
@endforeach 
2

を次のようにしますLaravelでeachmethod

$jobData->each(function ($item, $key) { 
    dd($item->job_title); 
}); 
+0

すでに' job_title'をデータベースに表示したいのですが、 'job_title'を返します。特定のものが必要です。教えてください。もしjob_idを何か 'job_title'に変更すると、すべての時間があなたの方法で" Admin Assistant "を返す –

+0

@ChoncholMahmud、特定の' Job'アイテムをフェッチしたいなら、おそらく 'Job :: all( ) 'を返しますが、単一の' Job'インスタンスを返す適切なメソッドを使用します。たとえば、[get](https://laravel.com/api/4.2/Illuminate/Database/Eloquent/Collection.html#method_get)メソッドを使用できます。それでもまだすべてのジョブ項目が必要だが、 'Job'プロパティに応じて何らかのアクションを実行する必要がある場合は、' if($ item-> job_id == 12345){...} 'のようなループにチェックを入れてください。だから、あなたが「特定のもの」を意味するかどうかは不明です。 –

関連する問題