2017-09-06 9 views
0

確かに私のところでは分かりやすい問題です。私は要素を出力できるコレクションを作成しようとしています。Laravel - コレクションインデックスにアクセスできない

例:

$collection=collect([ 
    'index1' => 'data1', 
    'index2' => 'data2', 
    'index3' => 'data3', 
]); 

$row=$collection->first(); 
dd($row->index1); 

または類似..しかし、私はエラー

は、非オブジェクトのプロパティを取得しようとしてもらう:

だから私は実行することができるようにしたいです。

Laravelのコレクションについては、基本的な使い方からAPIリファレンスまで、Laravelのドキュメントを読んでいます。この基本的な静的コレクションをどのように生成するかに関する情報は見つかりません。

誰かが助けることができますか?

+0

'最初の()'連想配列では動作しません。.. – Demonyowh

答えて

1

$row=$collection->first();は、オブジェクト/配列ではなく、値data1を指します。

期待された動作を得るには、以下のコードを試してください。それぞれの配列にそれぞれラップします。 Laravelのコレクションとして

$collection=collect([ 
          ['index1' => 'data1'], 
          ['index2' => 'data2'], 
          ['index3' => 'data3'], 
          ]); 

$row=$collection->first(); 
dd($row->index1); 
0

あなたは、配列

$value = $collection['index1']; 

たり、コレクションにあなたのための

$value = $collection->get('index1'); 
0

感謝をget方法を使用することができると同じようにあなたは、単にコレクションアイテムにアクセスすることができArrayAccessを実装答え、$ collection ['index1']が表示されます。フォーマットは機能します。

これは私が欲しかったものではありません。理由を説明しましょう。この特定のコーディング要件のために、私はこれに対する答えを知りたいと思っています。

私はCRUDブレードフォームを構築しています。私のブレードに

データベースがこの出力は失敗しますヌルを(必要な作成)を返す場合、私は、もちろん今$ dbcollection->フィールド1

の初期出力を持つ「フィールド1」を持っています。だから私がここでやろうとしているのは、少なくとも、オブジェクトの非インスタンスについて不平を言わず、コーディング形式の相違を説明するためにブレードフォーム上の@ifステートメントを避けているので、それが理解できるNULLで満たされたコレクションを渡すことです。

0

私は、これはあなたが探しているものであると信じて:

Controller

$collection=collect([ 
    'index1' => 'data1', 
    'index2' => 'data2', 
    'index3' => 'data3', 
]); 
$row = $collection->first(); 

view

<input type="text" value="{{ ($row->index1 ? $row->index1 : '') }}" > 
. 
. 
. 
. 
関連する問題