У меня есть две таблицы: Компании и Проекты. Компания имеет Множество проектов, а проект принадлежит компании.
Компания. php модель
protected $fillable = [
'id', 'name', 'description'
];
public function projects()
{
return $this->hasMany('App/Project');
}
Проект. php модель
protected $fillable = [
'name', 'description', 'company_id', 'days'
];
public function company()
{
return $this->belongsTo('App/Company');
}
Из моего index.blade. php я перечисляю только компании, и я сделал их доступными для кликов, так что когда пользователь нажимает на указанную компанию, они отображаются на show.blade. php, где отображается название компании и проекты, принадлежащие этой компании.
<div class="jumbotron">
<h1>{{ $company->name }}</h1>
<p class="lead">{{ $company->description }}</p>
</div>
<div class="row">
@foreach($company->projects as $project)
<div class="col-lg-4">
<h2>{{ $project->name }}</h2>
<p class="text-danger">{{ $project->description }}</p>
<p><a class="btn btn-primary" href="/projects/{{ $project->id }}" role="button">View Projects »</a></p>
</div>
@endforeach
</div>
Теперь я получаю ошибку undefined variable $ project . Поэтому я решил объявить переменную в своей функции show () в CompaniesController. php вот так
public function show(Company $company)
{
$company = Company::find($company->id);
$projects = Company::find(1)->projects;
return view('companies.show', ['company' => $company, 'projects' => $projects]);
}
И получить доступ к переменной в show.blade. php вот так
<div class="jumbotron">
<h1>{{ $company->name }}</h1>
<p class="lead">{{ $company->description }}</p>
</div>
<div class="row">
@foreach($projects as $project)
<div class="col-lg-4">
<h2>{{ $project->name }}</h2>
<p class="text-danger">{{ $project->description }}</p>
<p><a class="btn btn-primary" href="/projects/{{ $project->id }}" role="button">View Projects »</a></p>
</div>
@endforeach
</div>
Теперь при доступе к show.blade. php я получаю сообщение об ошибке «Приложение / проект» не найдено . У меня возникла проблема с передачей проектов компании на просмотр. Любая помощь будет оценена по достоинству. Вот мои маршруты;
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Route::resource('companies', 'CompaniesController');
Route::resource('projects', 'ProjectsController');