Laravelコントローラーから変数を渡すときにブレード内の変数が未定義になる
P粉056618053
2023-08-31 15:58:04
<p>それで、<code>model</code> と <code>controller</code> から文字列を返したいのですが、<code> を使用すると常に未定義変数と表示されます dd でチェックすると($ それは a)</code> と <code>dd($b)</code> を正常に渡します。私が何を間違えたのでしょうか? </p>
<p><code>about.blade:</code></p>
<pre class="brush:php;toolbar:false;">@extends('layout.template');
@section('homeContainer');
<p> {{ $a }} </p>
<br>
<p>{{ $b }}</p>
@endsection</pre>
<p><code>コントローラーについて:</code></p>
<pre class="brush:php;toolbar:false;"><?php
名前空間 App\Http\Controllers;
Illuminate\Http\Request を使用します。
App\Models\AboutModel を使用します。
クラス AboutController はコントローラーを拡張します
{
//
パブリック静的関数 info(){
$a = AboutModel::info();
$b = "このデータはコントローラーからのものです";
return view('about', Compact('a', 'b'));
}
}</pre>
<p><code>モデルについて:</code></p>
<pre class="brush:php;toolbar:false;"><?php
名前空間 App\Models;
Illuminate\Database\Eloquent\Factories\HasFactory を使用します。
Illuminate\Database\Eloquent\Model を使用します。
クラス AboutModel はモデルを拡張します
{
HasFactoryを使用します。
パブリック静的関数 Info(){
$a = "この値はモデルからのものです";
$a を返します。
}
}</pre>
<p><code>説明: </code></p>
<pre class="brush:php;toolbar:false;"><?php
Illuminate\Support\Facades\Route を使用します。
App\Http\Controllers\AboutController を使用します。
/*
|------------------------------------------------- -----------------------
| ウェブルート
|------------------------------------------------- -----------------------
|
| ここでは、アプリケーションの Web ルートを登録できます。
| ルートは RouteServiceProvider によってロードされ、すべてのルートがロードされます。
| 「Web」ミドルウェア グループに割り当てられます。何か素晴らしいものを作りましょう!
|
*/
Route::get('/', function () {
return view('ようこそ');
});
Route::get('/about', function () {
return view('about', [
"name" => AboutController::info(),
]);
});</pre></p>
コントローラーは実行されず、web.php ファイル内のコールバックのみが実行されます。 これは、a および b 変数はなく、name 変数のみがあることを意味します
###お返事ありがとうございます!モデルを変数およびルートとして誤って宣言したことが判明しました。
リーリー
コントローラーとモデルについては、静的を削除し、モデル宣言を変更しますコントローラー:
リーリー ######モデル:###### リーリー