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

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

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

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

PHP

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

Laravel 5

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

Q&A

解決済

1回答

668閲覧

Laravelにて連想配列の受け取りがうまくいかない

t1k2a

総合スコア18

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

PHP

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

Laravel 5

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

0グッド

0クリップ

投稿2018/08/31 09:35

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
クラスで定義した連想配列を使って
モデル→コントローラ→ビューで値を表示をしたいのですが、

Undefined property:

と出てしまいます。プロパティが定義されていないと出ているのですが、モデルで定義しています

該当のソースコード

Laravel

1Model.php 2<?php 3Class Model extends BossModel 4{ 5protected $to_view; 6 7public function rensouhairetu(){ 8 9 $this->to_view = [ 10 'key1' => hello, 11 'key2' => good morning, 12 ]; 13} 14}

Laravel

1Controller.php 2<?php 3use Model; 4class Controller extends BossController 5{ 6public function toView(){ 7return view ('view', $this->to_view) 8}

Laravel

1View.blade.php 2@php 3 var_dump($to_view) 4@endphp

何卒よろしくお願いします

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

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

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

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

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

m.ts10806

2018/08/31 21:59

rensouhairetu()にて変数にセットしているところ、helloやgood morningと書いていますが本当にこのままのコードが実行されていますか?クォーテーション忘れたりしていませんか?
guest

回答1

0

ベストアンサー

クラスで定義した連想配列を使って
モデル→コントローラ→ビューで値を表示をしたいのですが、

モデルの使い方が違います。
モデルはDBのレコードを抽象化したものです(他にもビジネスロジックを持つなどありますが)。

この場合はコントローラで連想配列を定義して使えば良いです。
モデルは不要です。

その上でコメントすると、

モデル

<?php Class Model extends BossModel { protected $to_view; public function rensouhairetu(){ $this->to_view = [ 'key1' => hello, 'key2' => good morning, ]; } }
  • protected ではコントローラからアクセスできない(それが意図ならばいいですが、 コントローラで ->to_view を書いてるので)
  • rensouhairetsu というメソッドが使われておらず無意味になっている(自動的に to_view に値を入れるつもりならコンストラクタを使用しなければなりません)。

コントローラ

<?php use Model; class Controller extends BossController { public function toView(){ return view ('view', $this->to_view) }
  • namespaceが定義されていない
  • コントローラで $this を使ってもモデルにはアクセスできない( $this を理解できていないと思います)
  • モデルのインスタンスを生成していない

投稿2018/08/31 09:55

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問