私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ[PHPフレームワーク]Laravel
php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
コントローラーじゃなくて、モデルからブレードにわたしてんの?なして?
レスありがとうございます。
説明下手ですいません。
コントローラでmodelから取得した配列をbladeに渡しています。
説明下手ですいません。
コントローラでmodelから取得した配列をbladeに渡しています。
こんなふうにテンプレートを定義して
public $layout = 'template';
こんな風に渡すといいよ
$this->layout->content = View::make('ビュー名', array('results' => $results, 'arg2' => $arg2));
この場合$resultsが配列の場合は
@foreach($results as $val)
ごにょごにょ
@endforeach
みたいな感じで取れる。
public $layout = 'template';
こんな風に渡すといいよ
$this->layout->content = View::make('ビュー名', array('results' => $results, 'arg2' => $arg2));
この場合$resultsが配列の場合は
@foreach($results as $val)
ごにょごにょ
@endforeach
みたいな感じで取れる。
>503さん
ありがとう。
1. $templateを定義して、¥View::makeの戻り値をcontentsに値を代入している理由
2. ¥View::makeを使う理由
がわかりません。
contensにブレードが生成したhtmlが入ってるよということでしょうか?
ありがとう。
1. $templateを定義して、¥View::makeの戻り値をcontentsに値を代入している理由
2. ¥View::makeを使う理由
がわかりません。
contensにブレードが生成したhtmlが入ってるよということでしょうか?
>504さん
レスありがとうございます!
debugbar入れてみた。
IDE使ってるからこういうブラウザに機能追加されるようなデバッグツールの使い道がよくわからん。
クエリビルダだと実行されたクエリがわからないので、それが気軽にみられるようになるとこは気に入った。
Debug::info();で出力するってことでしょうか?
レスありがとうございます!
debugbar入れてみた。
IDE使ってるからこういうブラウザに機能追加されるようなデバッグツールの使い道がよくわからん。
クエリビルダだと実行されたクエリがわからないので、それが気軽にみられるようになるとこは気に入った。
Debug::info();で出力するってことでしょうか?
>>505
意味は使ってみたらわかる。
まずやってみるよろし。
上の例ではtemplate.blade.phpで{{@$content}}って書けばあとは作成したビューで値が取れる。
View::makeでビューの作成と、ビューに渡す配列を同時に設定してんだね。楽だね。
つまり「ビュー名.blade.php」で@foreach($results as $val)とかすればいいってことだね。
意味は使ってみたらわかる。
まずやってみるよろし。
上の例ではtemplate.blade.phpで{{@$content}}って書けばあとは作成したビューで値が取れる。
View::makeでビューの作成と、ビューに渡す配列を同時に設定してんだね。楽だね。
つまり「ビュー名.blade.php」で@foreach($results as $val)とかすればいいってことだね。
あ、テンプレートを作る理由はもちろん各パーツのモジュール化が楽だから。
ヘッダーとか、フッターとか、ビュー作るごとにわざわざ付けるの面倒でしょ。
全部テンプレート経由で設定しとけば、変更も楽よ。
ヘッダーとか、フッターとか、ビュー作るごとにわざわざ付けるの面倒でしょ。
全部テンプレート経由で設定しとけば、変更も楽よ。
>507,508さん
すごい!
テンプレート作る理由の解説、滅茶苦茶分かりやすくて涙出そうです。
ありがとうございます。
ただやってみたのですがうまくはいきませんでした。
環境はlaravel5で、上記例の$this->layout->content = View::make(…とするとプロパティがないようでエラーが発生します。
予めtemplate.blade.phpに何か仕込んでおく必要があるのでしょうか?
すごい!
テンプレート作る理由の解説、滅茶苦茶分かりやすくて涙出そうです。
ありがとうございます。
ただやってみたのですがうまくはいきませんでした。
環境はlaravel5で、上記例の$this->layout->content = View::make(…とするとプロパティがないようでエラーが発生します。
予めtemplate.blade.phpに何か仕込んでおく必要があるのでしょうか?
ごめん、5はまだ試してないんだw
PostController.phpを作る。
class PostController extends BaseController { //http://example.com/post
public $layout = 'template'; // これtemplate.blade.php
public function getIndex($id) // getでhttp://example.com/post/<id>でアクセスした場合
{
$results = Post::where('id', $id)->get(); // 適当にPostモデルで定義したデータベースから値取得
$hoge = "hoge"; // 解説のために、こんなパラメータも追加
$this->layout->content = View::make('post', array( // ここでpost.blade.php
'results' => $resultsCashe,
'hoge' => $hoge
));
}
template.blade.php作る。
//なんか適当にヘッダーとか
{{@$content}}
//サイドバーとかフッターとか
post.blade.php作る。
@foreach($results as $val)
e($val->post_title); //例えば投稿のタイトルとか出力
@endforeach
全体こんな感じ
PostController.phpを作る。
class PostController extends BaseController { //http://example.com/post
public $layout = 'template'; // これtemplate.blade.php
public function getIndex($id) // getでhttp://example.com/post/<id>でアクセスした場合
{
$results = Post::where('id', $id)->get(); // 適当にPostモデルで定義したデータベースから値取得
$hoge = "hoge"; // 解説のために、こんなパラメータも追加
$this->layout->content = View::make('post', array( // ここでpost.blade.php
'results' => $resultsCashe,
'hoge' => $hoge
));
}
template.blade.php作る。
//なんか適当にヘッダーとか
{{@$content}}
//サイドバーとかフッターとか
post.blade.php作る。
@foreach($results as $val)
e($val->post_title); //例えば投稿のタイトルとか出力
@endforeach
全体こんな感じ
あ、コピペしてミスった。
「'results' => $resultsCashe,」じゃなくて
「'results' => $results,」ね
「'results' => $resultsCashe,」じゃなくて
「'results' => $results,」ね
$results = モデル名::all()->where(条件)->pagenation(1ページ表示件数);
として取得したオブジェクトをビューで表示すると
@foreach($results as $val)
{{$val->カラム名}} ・・・表示できない(値がnullになっている)
{{$val['origin']['カラム名']}} ・・・表示できる
{{$val->created_at}} ・・・表示できる
@endforeach
{{$results->render()}} ・・・表示できる
という結果になりテーブルの値がビューに渡せません。
created_atはcarbonという仕組みのおかげで表示できているだけのようです。
例えばコントローラ側を$results = モデル名::all()->where(条件)->pagination(1ページ表示件数)->toArray();
とすれば普通に連想配列で値は取れますが
@foreach($results as $val)
{{$val['カラム名']}} ・・・表示できる
{{$val->created_at}} ・・・表示できない
@endforeach
{{$results->render()}} ・・・エラーが発生してしまう
今度はページネーションが使えなくなってしまいます。
どうやるのが正解なのでしょうか?
として取得したオブジェクトをビューで表示すると
@foreach($results as $val)
{{$val->カラム名}} ・・・表示できない(値がnullになっている)
{{$val['origin']['カラム名']}} ・・・表示できる
{{$val->created_at}} ・・・表示できる
@endforeach
{{$results->render()}} ・・・表示できる
という結果になりテーブルの値がビューに渡せません。
created_atはcarbonという仕組みのおかげで表示できているだけのようです。
例えばコントローラ側を$results = モデル名::all()->where(条件)->pagination(1ページ表示件数)->toArray();
とすれば普通に連想配列で値は取れますが
@foreach($results as $val)
{{$val['カラム名']}} ・・・表示できる
{{$val->created_at}} ・・・表示できない
@endforeach
{{$results->render()}} ・・・エラーが発生してしまう
今度はページネーションが使えなくなってしまいます。
どうやるのが正解なのでしょうか?
>>506
普通にViewsタブ内の各ビューをクリックすれば、そのビューの持ってる変数見られるでしょ
普通にViewsタブ内の各ビューをクリックすれば、そのビューの持ってる変数見られるでしょ
質問の続き(510)を先に書き込んでしまいました。すみません。。。
>510さん
完全に理解できました!ありがとうございます。
用途としては画面共通で使う検索条件のプルダウン用配列なんかをtemplateで読み込んでおくような使い方でいいのでしょうか?
>510さん
完全に理解できました!ありがとうございます。
用途としては画面共通で使う検索条件のプルダウン用配列なんかをtemplateで読み込んでおくような使い方でいいのでしょうか?
用途は思いつく限りなんでもいいんじゃない?
上で書いたとおりヘッダーやフッターを設定しとくのが一般的だろうけども。
例えば特定の画面で、メニューバーの表示非表示をコントロールしたいとかの場合は
$this->layout->menubar = View::make('menubar', array('flag' => 'true'));
みたいにすればフラグも渡せるし。
まあなんていうか、自由w
上で書いたとおりヘッダーやフッターを設定しとくのが一般的だろうけども。
例えば特定の画面で、メニューバーの表示非表示をコントロールしたいとかの場合は
$this->layout->menubar = View::make('menubar', array('flag' => 'true'));
みたいにすればフラグも渡せるし。
まあなんていうか、自由w
度々すみません。
510の件まだ解決できず悩んでいます。
ビューに渡したコレクションからアロー演算子でテーブルの値を取得し、さらにrender()でpaginationを生成するにはどのようにしたらよいのでしょうか。
2ちゃんねるの皆さんのお知恵をかしてください。環境はlaravel5です。
510の件まだ解決できず悩んでいます。
ビューに渡したコレクションからアロー演算子でテーブルの値を取得し、さらにrender()でpaginationを生成するにはどのようにしたらよいのでしょうか。
2ちゃんねるの皆さんのお知恵をかしてください。環境はlaravel5です。
>>512
最初の$val->カラム名で値が取れないのがおかしい
その$valが何なのかもう少し調べてみばいいんじゃないかな
get_class関数でそれがどのクラスのオブジェクトなのか調べたり、単純に中身を表示させたりとかさ
中身はdd関数で表示できたかな
最初の$val->カラム名で値が取れないのがおかしい
その$valが何なのかもう少し調べてみばいいんじゃないかな
get_class関数でそれがどのクラスのオブジェクトなのか調べたり、単純に中身を表示させたりとかさ
中身はdd関数で表示できたかな
本当にその方法で値が取れないなら、モデルか、データベースの設計が間違ってる。
例えばPostというモデルを作る場合は、こんなかんじだよ。
class Post extends Eloquent {
protected $guarded = []; // 複数のカラムからデータを取得するため
protected $table = 'posts';
}
protected $table = 'posts'は省略可能だけど、自動でモデル名+sになるから注意。
データベースについてはちゃんとモデル名に対応したテーブルがあること、
配列で返って来るだけの複数の投稿があることを確認かなぁ。
っていうか$val['original']ってのがさっぱりわからん。
たぶんどっかで凡ミスしてる。
例えばPostというモデルを作る場合は、こんなかんじだよ。
class Post extends Eloquent {
protected $guarded = []; // 複数のカラムからデータを取得するため
protected $table = 'posts';
}
protected $table = 'posts'は省略可能だけど、自動でモデル名+sになるから注意。
データベースについてはちゃんとモデル名に対応したテーブルがあること、
配列で返って来るだけの複数の投稿があることを確認かなぁ。
っていうか$val['original']ってのがさっぱりわからん。
たぶんどっかで凡ミスしてる。
>>520
> ブレード側で{{ $val->カラム名 }}とした場合は値は取得できず
> {{ $val['original']['カラム名'] }}とすることで値が取得できました。
モデルにおかしなミューテーターを書いてるだけのように見えるが
> ブレード側で{{ $val->カラム名 }}とした場合は値は取得できず
> {{ $val['original']['カラム名'] }}とすることで値が取得できました。
モデルにおかしなミューテーターを書いてるだけのように見えるが
518です。
>522、521、522さん
ありがとうございます!!
原因が判明しました。どうやらモデルにカラムと同名のプロパティを定義したことが原因だったようです。
ガード、ミューテタがヒントになりました。
>522、521、522さん
ありがとうございます!!
原因が判明しました。どうやらモデルにカラムと同名のプロパティを定義したことが原因だったようです。
ガード、ミューテタがヒントになりました。
検証するときは考えられる最も単純な記述で値が取れるか調べるといいよ。
「ここはあってるはず」ってのが一番の天敵。
「ここはあってるはず」ってのが一番の天敵。
っていうか、ミューテーターとかアクセサーとか初めて聞いた。
一般的に使われる言葉なの?
一般的に使われる言葉なの?
使われてるんじゃね?
アクセサーのことを
ゲッター/セッターの両方をさす場合(rubyとかrubyとかrubyとか)もあるから、
少しややこしいけど。
アクセサーのことを
ゲッター/セッターの両方をさす場合(rubyとかrubyとかrubyとか)もあるから、
少しややこしいけど。
やっぱり5.1からEloquentとIlluminate¥SupportのCollectionのlistsメソッドは
arrayじゃなくCollectionを返すようになったんだな
しかしQueryBuilderのlistsはarrayのままという謎仕様
こういうのホントやめてほしいんだがな
arrayじゃなくCollectionを返すようになったんだな
しかしQueryBuilderのlistsはarrayのままという謎仕様
こういうのホントやめてほしいんだがな
laravl取り入れてる人や会社はレベルが高くて丁寧なイメージあるね。
海外でも活発に情報がやりとりされてるし。
あんま素人が手を出しにくいってのもあるかもしれんけども。
海外でも活発に情報がやりとりされてるし。
あんま素人が手を出しにくいってのもあるかもしれんけども。
ねーよそんなイメージ。
てかララベルを業務に採用している会社なんてあるんかw
てかララベルを業務に採用している会社なんてあるんかw
CodeIgniterをずっと使ってきましたが、ちょっとだけ新しいフレームワーク
に興味を持ち始めました。
Laravelって良いですか?
10年以上運用保守するシステムにも安心して使えますか?
CodeIgniterから乗り換えた方、Laravelの良さを教えてください。
に興味を持ち始めました。
Laravelって良いですか?
10年以上運用保守するシステムにも安心して使えますか?
CodeIgniterから乗り換えた方、Laravelの良さを教えてください。
今回の長期保証でも2年とかじゃね?
WordPressみたいなもんだよ。ころころ更新される。
良さはコンポーサーとか、restfulなモデルとか、OAuthとか、新しい技術をどんどん取り入れること。
だから長期運用が目的なら向かないだろうね。
ちなみに10年同じバージョンで運用保守可能なフレームワークなんてないから。
CentOSですら無理じゃね?w
WordPressみたいなもんだよ。ころころ更新される。
良さはコンポーサーとか、restfulなモデルとか、OAuthとか、新しい技術をどんどん取り入れること。
だから長期運用が目的なら向かないだろうね。
ちなみに10年同じバージョンで運用保守可能なフレームワークなんてないから。
CentOSですら無理じゃね?w
getメソッドとpostメソッドを別に扱う点だな。
最初は戸惑うだろし、混在したコードを書いてしましがちだが、徹底して分離するべし。
もうcodeIgniterには戻れん。
最初は戸惑うだろし、混在したコードを書いてしましがちだが、徹底して分離するべし。
もうcodeIgniterには戻れん。
特定のディレクトリ(今回は、pc)だけに聞く外部ファイルを置きたいです
↑
これの意味が何回読んでもわからんw
聞くが「効く」でも「きく」でもさっぱりわからん
内部でpublic以下のファイルを指定したいだけなら、そんな関数が用意されてるでしょ。
↑
これの意味が何回読んでもわからんw
聞くが「効く」でも「きく」でもさっぱりわからん
内部でpublic以下のファイルを指定したいだけなら、そんな関数が用意されてるでしょ。
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- symfony PHPフレームワークpart2 (530) - [60%] - 2022/4/10 22:45
- 【PHP】フレームワーク Akelos (129) - [60%] - 2019/5/9 7:46
- 【PHP】フレームワークPharonスレ (306) - [57%] - 2022/10/10 20:00
- [PHP][フレームワーク]CodeIgniter Part2 (983) - [56%] - 2015/4/7 12:46
- [PHP][フレームワーク]CodeIgniterスレ (983) - [53%] - 2011/3/5 23:17 ○
- 【PHP】フレームワークMapleに舌鼓 (470) - [48%] - 2017/12/31 9:31
- 【PHP】PHPフレームワーク総合スレ15 (989) - [42%] - 2013/9/27 6:00 △
トップメニューへ / →のくす牧場書庫について