質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

504閲覧

laravel5.6 で view 名を省略するには

ma7ma7pipipi

総合スコア85

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2018/11/12 13:43

編集2018/11/12 13:44

ArticleController

1 2 public function edit(Request $request, $id) { 3 $article = Article::find($id); 4 $hoge = "ひでちゃん".time(); 5 return view('article.'.__FUNCTION__, 6 compact( 7 'article', 8 'hoge' 9 ) 10 ); 11 } 12 13

この場合
現在の Controller名 と function edit を自動に表示させたいです。
理想としては以下みたいな感じです。

return view( compact( 'article', 'hoge' ) );

現在のACTION名は__FUNCTION__で取得できましたが、コントローラー名が取得できません。
やり方を教えて下さい。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

コントローラーとアクションとviewが固定されて不便なだけだと思うけどどうしてもやりたいなら
__CLASS__で名前空間を含むクラス名が取得できる。

$ctrl = class_basename(__CLASS__);

これでArticleControllerなので後は簡単。

ここからは未確認だけど
新しいヘルパーを作って__CLASS____FUNCTION__でviewを指定できれば

if (! function_exists('view2')) { function view2($data = [], $mergeData = []) { $view = ... return view($view, $data, $mergeData); } }

コントローラー側はこうできるけど試してないので不明。

return view2(compact());

投稿2018/11/12 14:45

kawax

総合スコア10377

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ma7ma7pipipi

2018/11/13 03:13

ありがとうございました。 できました。 ただ、やめておいたほうが良いということなので、 べた書きしていくようにします。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問