Article #555

既に発行済みのブログであっても適宜修正・追加することがあります。
We may make changes and additions to blogs already published.
posted by sakurai on November 24, 2022 #555

DocController index()の修正

yiiと異なり、外部テーブルを認識できないため、コントローラの修正も必要になってきます。前半がコントローラの修正、後半がビューの修正となります。

前半のコントローラの修正としてapp/Http/Controllers/DocController.php内のindexアクションの修正を行います。

    public function index(Request $request)
    {
        
$docs $this->docRepository->all();
        return 
view('docs.index')
            ->
with('docs'$docs);
    }

となっているところを修正します。

まずモデルの定義が必要です。

use App\Models\Category;

次に外部テーブルの要素が必要なので、categoriesに要素を全部集めてビューに渡します。

    public function index(Request $request)
    {
        
$docs $this->docRepository->all();
        
$categories Category::all()->pluck('name','id');
        return 
view('docs.index',compact('docs','categories'));
    }

ここでpluck()compact()の説明をします。pluck()は、all()で集めたモデルのオブジェクトの集合に対して、シンプルに'id'をキーにした'name'をバリューとするarrayを作成するメソッドです。

次に、compact()は例えば'doc'という変数名をキーにしてdocオブジェクトをバリューとするarrayを作成します。この場合は'doc'と'categories'という2つの変数をビューに渡します。このビューへの変数を渡す手法はyiiと全く同じです。


左矢前のブログ 次のブログ右矢

Leave a Comment

Your email address will not be published.

You may use Markdown syntax. If you include an ad such as http://, it will be invalidated by our AI system.

Please enter the numbers as they are shown in the image above.