我有两个表,公司和项目。一个公司有很多项目,一个项目属于一个公司。公司.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');
3 回答
隔江千里
TA贡献1906条经验 获得超10个赞
如果我是对的,我会很搞笑的……
在定义关系的模型中,将 App/Project 替换为 App\Project。对 Company... 执行相同操作。将“/”替换为“\”。
达令说
TA贡献1821条经验 获得超6个赞
您已经在使用模型绑定。在您的显示方法中,您不需要查找。只返回你需要的
public function show(Company $company)
{
return view('companies.show', ['company' => $company];
}
在您看来,您可以执行以下操作:
@foreach($company->projects as $project)
...
@endforeach
哈士奇WWW
TA贡献1799条经验 获得超6个赞
您必须Project
正确命名空间类
确保文件名是
Project.php
确保内部
Project.php
命名空间声明是正确的:namespace App;
确保里面的类名
Project.php
是“项目”:class Project extends Model { ...
确保您已将其导入控制器。
use App\Project
完成所有这些之后你不会得到错误:
Class 'App/Project' not found
- 3 回答
- 0 关注
- 114 浏览
添加回答
举报
0/150
提交
取消