2017-12-04 5 views
0

は、私が使用セッション値ストアをデータベースに挿入する方法は?

コントローラをセッション配列を取得し、他のモデルに入れたいと思った。しかし、アレイ上)(メンバ関数むしれに `

コールをスロー:

$orders = $request->session()->get('order'); 
$order = new Order(); 
$order->school_id = $orders->pluck('school_id'); 
$order->order_date = $orders->pluck('order_date'); 
$order->time_slot = $orders->pluck('time_slot'); 

方法セッションデータにアクセスして他のモデルに入れますか?

array:1 [▼ 
    0 => array:3 [▼ 
    "school_id" => "4" 
    "order_date" => "11/25/2017" 
    "time_slot" => "10am - 8pm" 
    ] 
] 

答えて

1

は次のようにしてみてください:session()->push('order', $order);

これは、

$orders = $request->session()->get('order'); 
print_r($orders); 

あなたが学校のID配列の注文を得るなら、あなたは$ orders ['school_id']でそれを得ることができます。あなたがSTDオブジェクトを取得した場合、あなたは、あなたがSTDオブジェクト場合

ことによってそれを保存することができますprint_r(orders) の出力あたりとして$orders->school_id; 使ってそれを取得することができます::

$order = new Order(); 
$order->school_id = $orders[0]->school_id; 
$order->order_date = $orders[0]->order_date; 
$order->time_slot = $orders[0]->time_slot; 
$order->save(); 

配列の場合::

アレイ上のメンバ関数むしれに
$order = new Order(); 
$order->school_id = $orders[0]['school_id']; 
$order->order_date = $orders[0]['order_date']; 
$order->time_slot = $orders[0]['time_slot']; 
$order->save(); 
+0

私dd($注文)私は配列として出力を得た更新されました。しかし、配列を取得しようとすると、未定義のインデックスがスローされます:school_id – User57

+0

あなたはdd $ ordersの出力を表示できますか? – Rits

+0

質問 – User57

0

私はarray_getヘルパーを使用します。ここでは

は私が)(セッションをddをするとき取得応答です。

https://laravel.com/docs/5.5/helpers#method-array-get

array_get($orders, 'school_id'); 

値がセッションに存在しない場合にはさらに、あなたは三番目のパラメータとしてフォールバックを使用することができます。

0

セッションはすべてのデータをCollectionに保持し、Collectionでは保持しません。関数pluck()は、コレクションに対してのみ使用できます。

は、すでにマークが言及したか、単に$request->session()->get('order')['school_id'];

+0

を使用し、提案されたよう:school_id'エラー – User57

0

それはあなたがセッションにそれを保存した方法によって異なりますので、あなたはプッシュを使用した場合、それは配列として保存されますarray_get($orders, 'school_id');をやってみてください。

とにかく、次のようにコードを変更します。

$orders = $request->session()-> pull('order',$defaultOrdersArrayCanBeHere); 
$order = new Order(); 
$order->school_id = $orders['school_id']; 
$order->order_date = $orders['order_date']; 
$order->time_slot = $orders['time_slot']; 

UPDATE:

は、あなたがそうとのセッションにプッシュしました:

$order = [ 
'school_id'=> $schoolId; 
'order_date'=> $orderDate; 
'time_slot'=> $timeSlot; 
] 
+0

をschool_id私はあなたがそれが '未定義のインデックスに私を送信する前に言ってきたやり方をしました私はセッションに格納するためにプッシュを使用しました。\t 私はdd($ orders)を出力として配列として取得しました。しかし、配列を取得しようとすると、未定義のインデックスがスローされます:school_id – User57

+0

私はそれを更新し、チェックして、私は –

+0

を教えてください: – User57

0

コール()

$orders変数は配列なので、pluckは使用できません。 $order['key']を使用して値にアクセスできます。それとも他の人が私は未定義のインデックスを示しヘルパー関数array_get

関連する問題