не могу пройти через массив коллекции Laravel - PullRequest
0 голосов
/ 17 мая 2019

застрял в массиве коллекции

Я получаю массив спецификаций.но не могу выполнить цикл в лезвии

это мой контроллер:

public function appliedJob($id)
{

   $apllied = AplliedJob::with('user','job')->find($id);


    return view('dashboardviews.page.apllied-job',compact('apllied'));
 }

это моя модель:

   class AplliedJob extends Model
   {

   use Notifiable;
   protected $fillable = [
    'name', 'email', 'message','aplied_cv',
   ];
   protected  $table='appllied_jobs';
   //protected $primaryKey = 'user_id';

   protected $primaryKey = 'user_id';

   public function user()
   {
    return $this->belongsTo('App\User','user_id');
   }
   public function job()
   {

   return $this->belongsTo('App\Job','job_id');
   }

   }

это массив, который я получаю, я хочу получить доступ к отношению# [задание] но выдает ошибку

   AplliedJob {#257 ▼
   #fillable: array:4 [▶]
   #table: "appllied_jobs"
   #primaryKey: "user_id"
   #connection: "mysql"
   #keyType: "int"
   +incrementing: true
   #with: []
   #withCount: []
   #perPage: 15
   +exists: true
   +wasRecentlyCreated: false
   #attributes: array:9 [▶]
   #original: array:9 [▶]
   #changes: []
   #casts: []
   #dates: []
   #dateFormat: null
   #appends: []
   #dispatchesEvents: []
   #observables: []
   #relations: array:2 [▼
   "user" => User {#263 ▼
   #fillable: array:4 [▶]
   #table: "users"
   #hidden: array:2 [▶]
   #casts: array:1 [▶]
   #connection: "mysql"
   #primaryKey: "id"
   #keyType: "int"
   +incrementing: true
   #with: []
   #withCount: []
   #perPage: 15
   +exists: true
   +wasRecentlyCreated: false
   #attributes: array:9 [▶]
   #original: array:9 [▶]
   #changes: []
   #dates: []
   #dateFormat: null
   #appends: []
   #dispatchesEvents: []
   #observables: []
   #relations: []
   #touches: []
   +timestamps: true
   #visible: []
   #guarded: array:1 [▶]
   #rememberTokenName: "remember_token"
   }
   "job" => Job {#261 ▼
   #fillable: array:4 [▶]
   #table: "jobs"
   #connection: "mysql"
   #primaryKey: "id"
   #keyType: "int"
   +incrementing: true
   #with: []
   #withCount: []
   #perPage: 15
   +exists: true
   +wasRecentlyCreated: false
   #attributes: array:10 [▼
    "id" => 1
    "user_id" => 2
    "jb_name" => "web developer"
    "jb_type" => "software"
    "jb_salary" => "12000"
    "jb_exp" => "12"
    "jb_description" => "djghnbjkguyfgykgvkvbuykgbkub g uiygjghpiu p;"
    "jb_loc" => "lahore"
    "created_at" => "2019-05-15 01:18:46"
    "updated_at" => "2019-05-15 01:18:46"
     ]
     #original: array:10 [▶]
     #changes: []
     #casts: []
     #dates: []
     #dateFormat: null
     #appends: []
     #dispatchesEvents: []
     #observables: []
     #relations: []
     #touches: []
     +timestamps: true
     #hidden: []
     #visible: []
     #guarded: array:1 [▶]
      }
     ]
     #touches: []
     +timestamps: true
     #hidden: []
     #visible: []
     #guarded: array:1 [▶]
      }

я пробовал это, но выдает исключение

     @foreach($apllied as $aplil)

     {{$aplil->job->jb_name}}

     @endforeach

это ошибка, которую я получаю, и не могу понять, что я делаюнеправильно

     ErrorException (E_ERROR)
     Trying to get property 'job' of non-object (View: 
    D:\xampp\htdocs\locojobs\resources\views\dashboardviews\page\apllied- 
    job.blade.php)

Ответы [ 3 ]

1 голос
/ 17 мая 2019

find() вернуть одну модель, поэтому вам нужно сделать следующее:

     {{$apllied ->job->jb_name}} //Remove the loop

или используйте get() вместо find()

0 голосов
/ 28 мая 2019

Попробуйте использовать get () или paginate () вместо find (), потому что find () возвращает одно значение.

Попробуйте следующий код,

public function appliedJob($id)
{

   $apllied = AplliedJob::with('user')->with('job')->get();

    return view('dashboardviews.page.apllied-job',compact('apllied'));
}
0 голосов
/ 17 мая 2019

Что я получаю из этого кода, у каждого экземпляра AplliedJob есть одно задание.Поэтому, как говорит @Anas Bakro, вам нужно удалить @foreach из своего кода.Если вы хотите построить другую архитектуру, пожалуйста, запишите свои таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...