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

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

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

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Laravel 5

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

2回答

2561閲覧

laravel Form::select()に変数は指定できない?

rl0t_ryunosuke

総合スコア14

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Laravel 5

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2020/06/09 16:23

編集2020/06/10 02:54

前提・実現したいこと

laravel Form::select()に変数は指定できない?
セレクトボックスの値をDBっから持ってきた配列にしたい。

ここに質問の内容を詳しく書いてください。

{{Form::select('affiliate_id', $affiliate_list ,null , array('id' => 'affiliate_id'))}}

controllerには
$affiliate_listにDBから店舗情報を持ってきています

発生している問題・エラーメッセージ

Undefined variable: affiliate_list (View: /Users/tns/project/hmpay_admin/resources/views/list/user.blade.php)
Previous exceptions

エラーメッセージ

該当のソースコード

user.blade.php

<body> <html> <main style="height:699px;"> <div class="scroll"> <section class="mobile_auth_search search_form"> <div class="tit head_area"> <section class="mobile_auth_search search_form"> <input type="hidden" value='0' class="search_display"> <div class="tit head_area"> <h3>認証番号一覧</h3> </div> {{Form::open(array('action' => 'MobilePhoneAuthController@search', 'method' => 'POST', 'id' => 'mobile_auth_search_form'))}} {{Form::hidden('csv', 0, array('id' => 'csv'))}} <div class="form-area cf">    <div class="form-part col2">      <p class="lbl">加盟店名</p>      <p class="inpt">        {{Form::select('affiliate_id',$affiliate_list , null , array('id' => 'affiliate_id'))}}      </p> <div class="btn-area"> {{Form::button('search_btn', '検索', array('type' => 'button', 'class' => 'btn', 'id' => 'search'))}} {{Form::button('reset', 'リセット', array('type' => 'button', 'class' => 'btn', 'id' => 'reset'))}} </div> {{Form::close()}} </div> </section> </div> </main> </html> </body>

MobilePhoneAuthController.php

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\MobilePhoneAuth; use App\M_Affiliate; class MobilePhoneAuthController extends Controller { public function search(Request $request){ $affiliate_list = M_Affiliate::all('shop_name'); } }

M_Affiliate.php

<?php namespace App; use Illuminate\Database\Eloquent\Model; class M_Affiliate extends Model { protected $table = "m_affiliate"; protected $fillable = [ 'affiliate_id','shop_name','shop_name_yagou','login_url_name', 'service_name', 'callcenter_n','callcenter_tel','operation_hours','bank_f','newitem_f','charge_scheme_a_init','charge_scheme_b_init','charge_margin_koza','charge_margin_card','agent_margin','shop_id_card','shop_pass_card', 'site_id_card','site_pass_card','sms_username', 'sms_password', 'logo_file_path','service_video_url','discharge_sounds_file_path','virtual_bank_branche_id','arbitrarily_coupon_flg','arbitrarily_sms_flg','login_line_flg','contactless_payment_flg','first_customer_confirm_flg','customize_css_flg','create_user','create_d','update_d','update_user','del_flg','discharge_sounds_file_path2' ]; }

migration

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; class CreateMAffiliateTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('m_affiliate', function(Blueprint $table) { $table->string('affiliate_id', 4)->primary(); $table->string('shop_name', 200)->nullable(); $table->string('shop_name_yagou')->nullable()->comment('屋号'); $table->string('login_url_name', 200)->nullable()->comment('ログインURLにセットする名称'); $table->string('service_name', 200)->nullable()->comment('サービス名'); $table->string('callcenter_n', 200)->nullable(); $table->string('callcenter_tel', 13)->nullable(); $table->string('operation_hours', 200)->nullable(); $table->integer('bank_flag')->nullable(); $table->integer('newitem_flag')->nullable(); $table->boolean('charge_scheme_a_initial')->nullable(); $table->boolean('charge_scheme_b_initial')->nullable(); $table->integer('charge_margin_koza')->comment('口座振替手数料'); $table->integer('charge_margin_card')->comment('クレジットカード手数料'); $table->integer('agent_margin')->default(0)->comment('収納代行手数料'); $table->string('shop_id_card', 20)->nullable(); $table->string('shop_pass_card', 100)->nullable(); $table->string('site_id_card', 20)->nullable(); $table->string('site_pass_card', 100)->nullable(); $table->string('sms_username', 100)->nullable()->comment('SMSアカウント'); $table->string('sms_password', 100)->nullable()->comment('SMSパスワード'); $table->string('logo_file_path')->nullable()->comment('ロゴ・ファイル・path'); $table->string('service_video_url', 510)->nullable()->comment('サービス紹介動画URL'); $table->string('discharge_sounds_file_path')->nullable()->comment('音声・ファイル・path'); $table->string('virtual_bank_branche_id')->nullable()->comment('仮想銀行支店マスタID'); $table->boolean('arbitrarily_coupon_flg')->nullable()->comment('クーポン任意付与設定フラグ'); $table->boolean('arbitrarily_sms_flg')->nullable()->comment('SMS任意付与設定フラグ'); $table->boolean('login_line_flg')->nullable()->comment('LINE連携フラグ'); $table->boolean('contactless_payment_flg')->nullable()->comment('非接触決済フラグ'); $table->boolean('first_customer_confirm_flg')->nullable()->default(0)->comment('一見顧客確認画面フラグ'); $table->boolean('customize_css_flg')->nullable()->comment('オリジナル会員ページ'); $table->string('create_user', 80)->nullable(); $table->dateTime('create_date')->nullable(); $table->dateTime('update_date')->nullable(); $table->string('update_user', 80)->nullable(); $table->boolean('del_flg', 1)->nullable(); $table->string('discharge_sounds_file_path2')->nullable()->comment('音声・ファイル・path'); }); }

試したこと

コントローラーに変数を指定

補足情報(FW/ツールのバージョンなど)

laravel5.8
ここにより詳細な情報を記載してください。

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

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

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

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

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

m.ts10806

2020/06/09 22:36

提示された情報だけでは$affiliate_listが正しくassignされたかどうか分かりません。 ルーティング、コントローラ、その他モデルなど 全体の流れがわかるコードを提示してください。 VIEWも一部ではなくなるべく全てです
rl0t_ryunosuke

2020/06/10 02:58

全てのソース反映いたしました。
guest

回答2

0

まずですが、selectに指定する配列はDBから取り出してきたものそのままは使えません。
foreachで配列を回して、連想配列などにする必要がございます。
エラー文自体はただただ変数名がないと吐き出していますので、DBから取得したデータをコレクションではなく連想配列にできているかの確認をお願いいたします。

投稿2020/06/09 18:10

774

総合スコア79

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

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

rl0t_ryunosuke

2020/06/10 03:22 編集

そこの認識が浅く学習中なのですが このインスタンスをforeachで回すやり方をご教授していただきたいです。
774

2020/06/10 04:22

dbからのResultはコレクションで返されますので、連想配列に変換する必要があります。 その際に使われる方法がforeachで回して逐次処理なんですけど、そもそもコントローラーからviewを呼び出していないのでそれ以前の問題です。 view呼び出してallでの引数渡しは多分書き方違います。察するにwhereつかって検索して取得した方が良さげです。 で、selectに使うには連想配列にする必要があるのですけど、新規で配列定義してforeachとかで回せばいけるのでは? 正直書いたご本人がコードの意味を理解してなさそうなので、曖昧なところを言われましても適切に回答できないというのが本音です。
774

2020/06/10 04:25

検索とかも例えば未選択だった場合どうするかとかの挙動がありませんし、正直な話ご本人様が何をしたいか、どうなっているかを理解していないように思えます。 例えばこれが講師案件でしたらその辺りを一から教えることは出来るのですが、そもそものご理解が浅いみたいですので、そこを一から教えるとなると多分難しいと思っています。
774

2020/06/10 04:27

もっと簡単なアプリ作成からしてみては如何でしょうか?
774

2020/06/10 04:29

それか例えば実際に同じような挙動で動いているプログラムをお見せすることもできますが、まぁそれもだいぶ外れてるよなーって感じです。
774

2020/06/10 04:34

というか正直やり方とかは書きましたので、後は多分検索しながらやればいけるのでは? なんかそれ以前の問題な気もするのですけど
774

2020/06/10 04:37

まぁ質問の回答としては「指定出来ますけど書き方がだいぶ違います」ってことで
774

2020/06/10 04:41

というかそもそもsearchではなくindexで一覧を呼んでいるのならindexの方で変数定義しなくてはいけないのでは?
774

2020/06/10 04:45

めっちゃ書きましたけどすいません!どこをどう指摘して良いか分からないレベルです。
guest

0

Undefined variable: affiliate_list (View: /Users/tns/project/hmpay_admin/resources/views/list/user.blade.php)

このエラーから、わかるのは、view controller から、affiliate_list を渡していないということです。

投稿2020/06/10 02:27

編集2020/06/10 03:00
phper.k

総合スコア3923

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

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

rl0t_ryunosuke

2020/06/10 02:59

view 側で配列を定義しないといけないのでしょうか?
phper.k

2020/06/10 03:00 編集

それはVIEWの役割ではありません。 回答ミスってたので、修正しました
rl0t_ryunosuke

2020/06/10 03:04

controllerから配列を渡すやり方をご教授いただきたいです。
phper.k

2020/06/10 03:05

聞く前に現状のコントローラー出してよ
rl0t_ryunosuke

2020/06/10 03:19

更新されているかと思います。 確認お願いいたします。
phper.k

2020/06/10 03:57 編集

ほんとにこれ??? viewを呼ぶ記述ないのに、これじゃあ、現象再現できないでしょう??? migrationにも嘘ありそうだし…
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問