2016-05-24 12 views
0

私はLaravelを初めて使用しています。このエラーメッセージ "空の値からデフォルトオブジェクトを作成する"が表示されます。私は現在の施設を更新するはずですが、私は何もしていません。でも、SAVEボタン(edit_facilities.blade.php)をクリックすると、データベースのデータが更新されますが、私はやっていると思いますそれは間違っています..誰かが私のコードを改善する方法や訂正する方法を教えてください。 これは私のCONTROLLERです:"空の値からデフォルトオブジェクトを作成する" 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'); 
     }?> 

そして、これはview_facilities.blade.phpのための私のVIEWです:

<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> 

そして、これは私のedit_facilities.blade.phpのVIEWのためであります

<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> 

そして、私のROUTES:

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

コードは正しいです。あなたが欲しいもの ? –

+0

@PrashantGPatil @PrashantGPatilそれが正しいようだが、私は "FacilitiesController.php行82: 空の値からデフォルトオブジェクトを作成する"エラーが発生しています.. "$ facility-> facility_name = Input :: get( 'facility_name') ; " – zuma

+0

NULL値にプロパティを使用しようとすると、このエラーが表示されます。したがって、$ facility-> facility_nameがNULLでないかどうかを常に確認する必要があります。 –

答えて

2

変更formタグとupdate_facilities機能:

<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

あなたは私の一日を保存しました...ありがとうございました:) ..あなたのフォームアクションでは、 " id)}の代わりに " } "method =" POST "enctype =" multipart/form-data "> ..hehe ...しかし、小さな間違いです。 – zuma

+0

肯定的なフィードバックありがとう:)。 –

関連する問題