2017-09-09 3 views
0

Ich habe versucht, Array Element aus Sitzung zu entfernen. Ich habe das Array-Element wie folgt dargestellt:Laravel: Entfernen Array-Element aus Sitzung

<?php $i=1; ?> 

@foreach(Session::get('product') as $row) 
    <tr> 
     <td> 
      <img src="{{asset('files/'.$row->thumbnil)}}" class="img-thumbnail" alt="" width="90px"> 
     </td> 
     <td>{{$row->name}}</td> 
     <td> 
      <a href="{{asset('deleteEnquote/'.$row->id)}}"> 
       <button class="btn btn-danger btn-sm"><i class="fa fa-remove"></i></button> 
      </a> 
     </td> 
    </tr> 
<?php $i++; ?> 
@endforeach 

Und das ist, wie ich das Schlüsselelement zu entfernen versuchte:

public function deleteEnquote($id) 
{ 

    $remove = Product::where('id',$id)->first(); 

    if(Session::has('product')){ 
     foreach (Session::get('product') as $key => $value) { 
      if($value === $remove){ 
       Session::pull('product.'.$key); // retrieving pen and removing 
       break; 
      } 
     } 
    } 

    return redirect('enquote'); 
} 

Aber das Problem ist, ich nicht das entsprechende Element aus der gelöscht werden konnte Array.Means Element nicht gelöscht. Wie lösche ich das bestimmte Element aus dem Session Array?

Antwort

0

Sie brauchen so etwas wie dies zu tun:

  1. das Array holen.
  2. Verwenden Sie unset Funktion entfernen Sie diesen Schlüssel.
  3. Setzen Sie das aktualisierte Array erneut auf Sitzung mit demselben Schlüssel.

    $product = Session::get('product'); //step 1 
    unset($product[$key]);    //step 2 
    Session::put('product', $product); //step 3 
    
0

Wenn Produkt ist Ihr dann Session-Array folgenden Code verwenden:

if(Session::has('product')){ 
    foreach (Session::get('product') as $key => $value) { 
    if($value === $remove){ 
     session()->forget('product.'.$key) 
     break; 
    } 
    } 
} 
+1

Code nur Antworten entmutigt werden, weil sie nicht erklären, wie sie in der Frage das Problem zu beheben. Bitte aktualisieren Sie Ihre Antwort, um zu erklären, wie sie das Problem anspricht. Bitte lesen Sie [Wie schreibe ich eine gute Antwort] (https://stackoverflow.com/help/how-to-answer) – FluffyKitten