亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

LARAVEL 7 - 如何將變量傳遞給視圖

LARAVEL 7 - 如何將變量傳遞給視圖

PHP
縹緲止盈 2023-04-21 17:15:00
我有兩個表,公司和項目。一個公司有很多項目,一個項目屬于一個公司。公司.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... 執行相同操作。將“/”替換為“\”。


查看完整回答
反對 回復 2023-04-21
?
達令說

TA貢獻1821條經驗 獲得超6個贊

您已經在使用模型綁定。在您的顯示方法中,您不需要查找。只返回你需要的


public function show(Company $company)

{

    return view('companies.show', ['company' => $company];

}

在您看來,您可以執行以下操作:


@foreach($company->projects as $project)

...

@endforeach


查看完整回答
反對 回復 2023-04-21
?
哈士奇WWW

TA貢獻1799條經驗 獲得超6個贊

您必須Project正確命名空間類

  1. 確保文件名是Project.php

  2. 確保內部Project.php命名空間聲明是正確的:namespace App;

  3. 確保里面的類名Project.php是“項目”:class Project extends Model { ...

  4. 確保您已將其導入控制器。use App\Project

完成所有這些之后你不會得到錯誤:

Class 'App/Project' not found

查看完整回答
反對 回復 2023-04-21
  • 3 回答
  • 0 關注
  • 141 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號