Article #557

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

DocController edit()の修正

app/Http/Controllers/DocController.php内のeditアクションの修正です。同じく前半がコントローラの修正、後半がビューの修正です。

標準ではコントローラのコードは、

      public function edit($id)
      {
          
$doc $this->docRepository->find($id);
          if (empty(
$doc)) {
              
Flash::error('Doc not found');
              return 
redirect(route('docs.index'));
          }
          return 
view('docs.edit')->with('doc'$doc);
      }

と生成されますが、これを次のように修正します。

      public function edit($id)
      {
          
$doc $this->docRepository->find($id);
          
$categories Category::all()->pluck('name','id');
          if (empty(
$doc)) {
              
Flash::error('Doc not found');
              return 
redirect(route('docs.index'));
          }
          return 
view('docs.edit'compact('doc''categories'));
      }

'doc'と'categories'という2つの変数をedit1次ビューに渡します。実際の作業は2次ビューであるfieldが実行します。

DocController create()の修正

引き続きcreateアクションの修正を行います。editもcreateもビューは同じなので、併せて前半のコントローラの修正を行います。

標準ではコントローラのコードは

      public function create()
      {
         return 
view('docs.create');
      }

と生成されますが、これを次のように修正します。先に示したようにeditアクションとビューを兼用しているため、$idをダミーで渡します。

      public function create()
      {
         
$doc null;

         $categories Category::all()->pluck('name','id');
         return view('docs.create',compact('doc','categories'));
      }

editアクションと同様、、'doc'と'categories'という2つの変数をcreate1次ビューに渡します。実際の作業は2次ビューであるfieldが実行します。


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

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.