u2mrz
@u2mrz (Mrzk Y)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

laravel-generator生成したCRUDで外部参照ドロップダウン生成エラー

解決したいこと

アプリケーション開発にLaravelを使う事を検討しており、CRUD生成は
CakePHPのbakeのような感じで使えるものを探しています。そこで
laravel generatorを試してみようと思い、ちょうど@ayasamindさんの
下記の記事を見つけたので

参考にさせて頂きながら、最初からほぼ同等の手順で進めたところ
CRUD生成までは簡単にうまく行きました(@ayasamindさんの
記事に書かれている、「Laravel-GeneratorがまたPHP8に対応していないみたい」
というところのエラーも対応済みのようで出ませんでした。)。

しかし、自動生成したArticleのCRUD画面の新規作成画面表示でで次のようなエラーになってしまいます。

発生している問題・エラー

ParseError
Unclosed '(' does not match ']' (View: /home/vagrant/Code/lvlGene/resources/views/articles/fields.blade.php)

field.blade.phpを見るとhtmlTypeをselectで指定した外部参照user_idのところが

該当するソースコード

<div class="form-group col-sm-6">
    {!! Form::label('user_id', 'User Id:') !!}
    {!! Form::select('user_id', ], null, ['class' => 'form-control']) !!}
</div>

となっておりselectの2番目のオプションのところが正常に生成されていないようです。
これは何がいけないのでしょうか。LaravelDB.comのCRUD自動生成では外部参照の
ドロップダウンは対応しないようですが、Laravel Generatorは自動生成できるという
認識なんですが。。すみませんがどなたか教えてください。

環境
PHP v8.0.11
Laravel 8.76.2

自分で試したこと

0

5Answer

@Zombie_PGさんご連絡ありがとうございます。はい、自分でコーディングする場合はおっしゃるようなやり方だと思います。私が知りたかったのは、CakePHPのbakeコマンドでできるように、その部分を自動でコード生成できないのかという事でした。その後、いろいろと調べてみたところ、どうもLaravel-Generator(のScafforld)ではCakePHPのbakeコマンドのように外部参照のドロップダウンを自動生成はできないようです。いろいろご連絡ありがとうございました。

1Like

こんにちは!
{!! Form::select('user_id', ] , null, ['class' => 'form-control']) !!}
この太字にした部分が、とりあえず余計だと思うのですが、どうでしょう!

0Like

@Zombie_PGさん、ご返事ありがとうございます。はい、おっしゃるよう']'が問題なんですが、ここには多分usersテーブルのnameとidのkey/value配列が入ってくれるものと思うのですが、それが自動で生成されると予想していたのですが、そうなりませんでした。それで何でかなと。。

0Like

@u2mrz さん
ちょっとおっしゃっている意味が分かりかねるのですが、
もしそこに初期値として何かを設定したいのであれば、以下のサイトを参考にしてはどうでしょうか。
https://qiita.com/miriwo/items/6c1d886abe6a15b1b507
{!! Form::select('user_id', ['Under 18', '19 to 64', 'Over 65'] , null, ['class' => 'form-control']) !!}
こんな感じでしょうか。ちょっと動かしていないので何とも言えないですが、もし連想配列みたいなのをコントローラーからviewに投げているのでしたら、変数をそのまま置いてあげるのはどうでしょうか。

0Like

@u2mrz さん ようやくおっしゃっている意味が分かりました。
cakePHPの知見を私自身は持ち合わせていませんが、そういったことができるんですね。
勉強になります!ありがとうございます!

0Like

Your answer might help someone💌