我有两个表,公司和项目。一个公司有很多项目,一个项目属于一个公司。
公司.php模型
protected $fillable = [
'id', 'name', 'description'
];
public function projects()
{
return $this->hasMany('App/Project');
}
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>
现在我得到一个未定义的变量$project错误。所以我决定像这样在 CompaniesController.php 的 show() 函数中声明变量
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');
隔江千里
达令说
哈士奇WWW