我有兩個表,公司和項目。一個公司有很多項目,一個項目屬于一個公司。公司.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 關注
- 141 瀏覽
添加回答
舉報
0/150
提交
取消