Open7
laravel-admin 使用メモ
コントローラのform内で、inputでtypeをnumberにしつつ、小数点の桁数を指定したい場合
$form->decimal('area', '面積')->attribute(['step' => 0.01, 'type' => 'number']);
<input type="number" name="area" step="0.01" />
formでラベルにhtml入れることもできる
$form->html('', '<h3 style="font-weight:bold; color: dodgerblue">ラベル</h3>');
カスタムビューを使い、動的に生成するフォームがあった時に、
テンプレートリテラルを使うと、画面の表示が崩れてしまう
なので、HTMLを動的に生成する方に修正する
一覧画面で子の要素を入れ子の一覧表示
Use Encore\Admin\Widgets\Table;
$grid->column('title', 'title')->expand(function ($model) {
$comments = $model->comments()->take(10)->get()->map(function ($comment) {
return $comment->only(['id', 'content', 'created_at']);
});
return new Table(['ID', 'content', 'release time'], $comments->toArray());
});
一覧画面
行ごとのアクション、フィルターを使わない場合は非表示
詳細画面
削除処理→カスタム削除アクション追加
フィルター
$grid->actions(function (Grid\Displayers\DropdownActions $actions) {
$actions->disableView();
$actions->disableDelete();
$actions->add(new Delete());
});
$grid->disableFilter();
gridでボタンを表示する場合、pjaxで遷移するので、遷移先の画面でカスタムjsを用いてたら、表示がない事象になった。別タブで開かせるようにさせて対応した。
$form->select('xxxx.yyyy', 'aaaa')
->options([])->setErrorKey('yyy');
子要素をformで設定した時、キー名で$errors変数に入るが、selectのform上ではリレーション「xxxx」を使っている場合エラーメッセージを表示できていなかった。
「setErrorKey」を使うことでvalidationメッセージを表示させる