2016-05-23 8 views
0

私は多くの問題を私の問題にもかかわらず見つけましたが、答えはまだ見つかりませんでした。それは私のブレードの私のforeachループについてです。htmlentities()は、パラメータ1が文字列であると仮定します。 Laravel

私のブレードにすべての製品名を印刷したいのですが、その方法を理解することはできません。

---現在のコードを:私は製品を取得していますか

ザッツ

// controller 

    $id_array = Input::get('id'); 
    $products= Products::whereIn('id', $id_array)->get(); 
    $product_name = []; 
    foreach($products as $arr) 
    { 
     $product_name= $arr->lists('name'); 
    } 

が$ PRODUCT_NAMEを返す出力として私にこれを与える:私のブレードで

["football","cola","idontknow","freshunicorn","dummy-data"] 

@foreach($products as $product) 
    {{ $product}} 
@endforeach 

Error: htmlentities() expects parameter 1 to be string, array given 

あなたの助けと時間をいただきありがとうございます。

答えて

1

配列の配列にオブジェクトが追加されているようです。このよう

:あなたがあなたのモデルを取得するには、Get()関数を使用しているため

array(
    array(
    object 
) 
) 

それは起こります。 get()関数は、常に複数のモデルを取得したいと思っています。代わりに、first()関数を使用する必要があります。

このよう

foreach($id_array as $arr) 
{ 
    $want2editarray[] = Product::where('id', $arr)->first(); 
} 
は、それはおそらくだ@Wellnoコメント

後:)

編集を役に立てば幸いための製品::( 'ID'、$のARR) - > first();何も見つからなかったのでnullを返します。

商品の検索後に小切手を追加するのを忘れました。

これは次のように行うことができます。

foreach($id_array as $arr) 
{ 
    // First try to get model from database 
    $product = Product::where('id', $arr)->first(); 

    // If $product insert into array 
    if ($product) $want2editarray[] = $product; 
} 
+0

$productsを使用する:あなたはIDですべての製品を見つけることができます。私のブレードに$ product-> nameを印刷したいのであれば、非オブジェクトのプロパティを取得しようとしています – WellNo

+0

あなたの問題を修正するために私の答えを編集しました@WellNo –

+0

私はすでにそれを行いました:)しかしこれは解決していません私の問題..私のブレードはまだ私に与えます:非オブジェクトのプロパティを取得しようとしています - 私は私の現在のコードで私の質問を更新します:) – WellNo

0

は、データをフェッチするためのモデル/雄弁を使用するようにしてください。 ビューはデータを表示するだけで、DBから直接フェッチしたり、重い計算をしないでください。

+0

です。私のビューはデータベースから直接データを取得しません。私は私のコントローラで私が望むものを得て、私の見解にすべてのデータを送る。 – WellNo

1

なぜループIDを使用しますか?

$products = Product::whereIn('id', $id_array)->get();

そして、コントローラ出力は、同じである良いthatsのブレード・テンプレートに

@foreach($products as $product) 
    {{ $product->name }} 
@endforeach 
+0

htmlentities()は、パラメータ1が文字列で配列が与えられると期待しています – WellNo

+0

私の質問を現在のはるかに短いコードで更新しましたが、それと同じエラーです - htmlentities()は、パラメータ1が文字列、arrayが与えられているとします。 – WellNo

+0

'$ product'変数を表示してください。 '{{$ product-> name}}' write 'の前に?<?php dd($ product); ?> ' –

関連する問題