0

Ich bin neu in Laravel und bekomme ich diese Fehlermeldung "Erstellen von Standard-Objekt aus leeren Wert". Ich sollte eine aktuelle Einrichtung aktualisieren, aber ich tue nichts. Wenn ich auf den SPEICHERN-Button (edit_facilities.blade.php) klicke, werden die Daten in der Datenbank aktualisiert, aber ich glaube, ich mache es es ist falsch..Kann jemand mir bitte helfen, wie ich meinen Code verbessern oder korrigieren kann..danke. Das ist mein CONTROLLER:"Erstellen von Standard-Objekt aus leeren Wert" auf Update Laravel 5

 <?php 
     namespace App\Http\Controllers; 

     use Illuminate\Http\Request; 

     use App\Http\Requests; 

     use App\Facilities; 

     use View; 

     use Redirect; 

     use Alert; 

     use Validator; 

     use Input; 

     use App\Providers\SweetAlertServiceProvider; 

     class FacilitiesController extends Controller 
     { 

     public $restful = true; 


     public function update_facilities($id){ 

     $facility = Facilities::find($id); 

     $facility->facility_name = Input::get('facility_name'); 
     $facility->category  = Input::get('category'); 
     $facility->save(); 


     Alert::success('Successfully Updated', 'Congratulations'); 
     return view('hotelier/facilities'); 
     }?> 

Und das ist meiner Meinung nach für view_facilities.blade.php:

<h2>Hotel Facilities</h2> 
<table class="table table-bordered table-hover"> 
    <thead> 
     <tr> 
      <th>Facility Name</th> 
      <th>Category</th> 
      <th>Actions</th> 
     </tr> 
    </thead> 
    <tbody id="facility_list"> 
     @foreach($facilities as $facility) 
      <tr id="facility{{$facility->id}}"> 
       <td>{{ $facility->facility_name }}</td> 

       <td>{{ $facility->category }}</td> 

       <td><a href="<?php echo 'edit_facilities/'.$facility->id ?>" value="{{$facility->id}}" class="btn btn-info open-modal">Edit</a>&nbsp; 
       <a id="delete<?php echo $facility->id ?>" href="<?php echo 'delete_facilities/'.$facility->id ?>" class="btn btn-danger" onclick="delete_fac(this)" value="<?php echo $facility->facility_name ?>">Delete</a>&nbsp; 

      </tr> 
     @endforeach 

    </tbody> 
</table> 

Und das ist für die Ansicht meines edit_facilities.blade.php

<div class="container"> 
<h2>Edit Hotel Facility</h2> 
<div class="col-md-4 form-horizontal"> 
    <form action="/update_facilities/'.$facility->id" method="POST" enctype="multipart/form-data"> 
    <input type="hidden" name="_token" value="{{ csrf_token() }}" /> 
     <label>Facility Name</label> 
     <input type="text" class="form-control" value="{{ $facility['facility_name'] }}" name="facility_name" id="facility_name" autocomplete="off"></input> 
     <br /> 
     <label>Category</label> 
     <input type="text" class="form-control" value="{{ $facility['category'] }}" name="category" id="category" autocomplete="off"></input> 
     <br /> 
     <button type="submit" class="btn btn-info">Save</button> 
    </form> 
</div> 

Und mein WEGE:

Route::post('/update_facilities/{id}', '[email protected]_facilities'); 
+0

-Code richtig ist. Was willst du? –

+0

@ PrashantGPatil scheint es richtig, aber ich bekomme "ErrorException in FacilitiesController.php Zeile 82: Erstellen von Standard-Objekt aus leeren Wert" .. Die Zeile 82 ist "$ facility-> facility_name = Input :: get ('facility_name') " – zuma

+0

Wenn Sie versuchen, eine Eigenschaft auf NULL-Wert zu verwenden, wird dieser Fehler angezeigt. Sie sollten also immer überprüfen, ob der $ facility-> facility_name nicht NULL ist. –

Antwort

2

ändern Formular-Tag und update_facilities Funktion:

<form action="{{ action('[email protected]_facilities', $facility->id") }} method="POST" enctype="multipart/form-data"> 

public function update_facilities($id){ 
    $facility = Facilities::find($id); 
    if(count($facility) > 0){ 
     $facility->facility_name = Input::get('facility_name'); 
     $facility->category  = Input::get('category'); 
     $facility->save(); 
     Alert::success('Successfully Updated', 'Congratulations'); 
     return view('hotelier.facilities'); 
    } else { 
     Alert::error('Facilities not found', 'Error'); 
     return view('hotelier.facilities'); 
    } 
} 
+0

hast du meinen Tag gerettet ... Vielen Dank :) ..Aber auf deiner Formular-Aktion hast du die "anstelle von'

' ..hehe ... aber es ist nur ein kleiner Fehler .. – zuma

+0

Danke für das positive Feedback :). –

Verwandte Themen