尝试在视图 blade 中获取 属性 'id' 的 non-object
Trying to get property 'id' of non-object in view blade
这是我的代码我该怎么办?在我的项目中没有读取这段代码有什么问题?我写这段代码错了吗?
尝试获取 属性 'id' of non-object (View: C:\xampp\htdocs\rezkastore\resources\views\pages\daftar_supplier.blade.php)
@foreach($daftar_supplier as $daftar_supplier)
<div class="modal fade" id="editModal-{{ $daftar_supplier->id }}" tabindex="-1" role="dialog" aria-labelledby="addModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title mb-0" id="addModalLabel">Tambah Data Pelanggan</h5>
</div>
<div class="modal-body">
<!-- Card body -->
<form role="form" action="{{ route('daftar_supplier.update', $daftar_supplier->id) }}" method="POST">
@csrf
@method('POST')
<!-- Input groups with icon -->
<div class="form-group row">
<label for="addNamaSupplier" class="col-md-2 col-form-label form-control-label">Nama</label>
<div class="col-md-10">
<input class="form-control" type="nama" value="{{ $daftar_supplier->nama_supplier }}" id="updateNamaSupplier" name="updateNamaSupplier" required>
</div>
</div>
<div class="form-group row">
<label for="updateAlamat" class="col-md-2 col-form-label form-control-label">Alamat</label>
<div class="col-md-10">
<input class="form-control" type="alamat" value="{{ $daftar_supplier->alamat }}" id="updateAlamat" name="updateAlamat" required>
</div>
</div>
<div class="form-group row">
<label for="updateNoTelp" class="col-md-2 col-form-label form-control-label">No.Telp</label>
<div class="col-md-10">
<input class="form-control" type="notelp" value="{{ $daftar_supplier->no_telp }}" id="updateNoTelp" name="updateNoTelp" required>
</div>
</div>
<div class="form-group row">
<label for="updateEmail" class="col-md-2 col-form-label form-control-label">Email</label>
<div class="col-md-10">
<input class="form-control" type="email" value="{{ $daftar_supplier->email }}" id="updateEmail" name="updateEmail" required>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary">Tambah Data</button>
</div>
</form>
</div>
</div>
</div>
@endforeach
这是视图的控制器
public function update(Request $request, $id)
{
$update_supplier = DaftarSupplier::findOrFail($id);
$update_supplier->nama_supplier = $request->updateNamaSupplier;
$update_supplier->alamat = $request->updateAlamat;
$update_supplier->no_telp = $request->updateNoTelp;
$update_supplier->email = $request->updateEmail;
$update_supplier->save();
if($update_supplier){
Alert::success(' Berhasil Update Data ', ' Silahkan dicek kembali');
}elseif(!$update_supplier){
Alert::error('data gagal disimpan ', ' Silahkan coba lagi');
}
return redirect()->back();
}
这是路线
//Daftar Supplier
Route::get('daftar_supplier','\App\Http\Controllers\DaftarSupplierController@index')->name('daftar_supplier');
Route::post('daftar_supplier/create','\App\Http\Controllers\DaftarSupplierController@create')->name('daftar_supplier.create');
Route::delete('daftar_supplier/delete/{id}','\App\Http\Controllers\DaftarSupplierController@delete')->name('daftar_supplier.delete');
Route::put('daftar_supplier/update/{id}', '\App\Http\Controllers\DaftarSupplierController@update')->name('daftar_supplier.update');
请帮忙
您可能没有将 $daftar_supplier
传递给控制器中的视图。它应该在您尚未共享的 DaftarSupplierController@index
的末尾。一般来说,你应该根据 https://laravel.com/docs/8.x/views#passing-data-to-views
将数据数组传递给视图
此外,最好在 @foreach
循环中为数组和值使用不同的变量名称,例如:
@foreach($daftar_suppliers as $daftar_supplier)
请注意遵循简单的变量命名约定。
单数 Object 或记录 - $daftar_supplier 单数 record/object
复数 collection 条记录 - collection 条 daftar_supplier 条 daftar_supplier 记录
这不仅使代码易于阅读和理解 - 它还避免了运行时的歧义。
在问题 blade 视图的片段中,@foreach($daftar_supplier as $daftar_supplier)
使用完全相同的变量名称 collection 以及循环遍历 collection 时的单个记录。
这样的命名约定不仅使代码难以阅读和理解,还会在运行时产生歧义。
因此 id="editModal-{{ $daftar_supplier->id }}"
可以在运行时进行评估,就像您尝试访问 collection 而不是单个 object 上的 id
属性 一样。
当然 id
是 collection 中的单个记录 属性,而 collection 本身没有 id
属性 所以在运行时可能会抛出错误。
这是我的代码我该怎么办?在我的项目中没有读取这段代码有什么问题?我写这段代码错了吗? 尝试获取 属性 'id' of non-object (View: C:\xampp\htdocs\rezkastore\resources\views\pages\daftar_supplier.blade.php)
@foreach($daftar_supplier as $daftar_supplier)
<div class="modal fade" id="editModal-{{ $daftar_supplier->id }}" tabindex="-1" role="dialog" aria-labelledby="addModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title mb-0" id="addModalLabel">Tambah Data Pelanggan</h5>
</div>
<div class="modal-body">
<!-- Card body -->
<form role="form" action="{{ route('daftar_supplier.update', $daftar_supplier->id) }}" method="POST">
@csrf
@method('POST')
<!-- Input groups with icon -->
<div class="form-group row">
<label for="addNamaSupplier" class="col-md-2 col-form-label form-control-label">Nama</label>
<div class="col-md-10">
<input class="form-control" type="nama" value="{{ $daftar_supplier->nama_supplier }}" id="updateNamaSupplier" name="updateNamaSupplier" required>
</div>
</div>
<div class="form-group row">
<label for="updateAlamat" class="col-md-2 col-form-label form-control-label">Alamat</label>
<div class="col-md-10">
<input class="form-control" type="alamat" value="{{ $daftar_supplier->alamat }}" id="updateAlamat" name="updateAlamat" required>
</div>
</div>
<div class="form-group row">
<label for="updateNoTelp" class="col-md-2 col-form-label form-control-label">No.Telp</label>
<div class="col-md-10">
<input class="form-control" type="notelp" value="{{ $daftar_supplier->no_telp }}" id="updateNoTelp" name="updateNoTelp" required>
</div>
</div>
<div class="form-group row">
<label for="updateEmail" class="col-md-2 col-form-label form-control-label">Email</label>
<div class="col-md-10">
<input class="form-control" type="email" value="{{ $daftar_supplier->email }}" id="updateEmail" name="updateEmail" required>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary">Tambah Data</button>
</div>
</form>
</div>
</div>
</div>
@endforeach
这是视图的控制器
public function update(Request $request, $id)
{
$update_supplier = DaftarSupplier::findOrFail($id);
$update_supplier->nama_supplier = $request->updateNamaSupplier;
$update_supplier->alamat = $request->updateAlamat;
$update_supplier->no_telp = $request->updateNoTelp;
$update_supplier->email = $request->updateEmail;
$update_supplier->save();
if($update_supplier){
Alert::success(' Berhasil Update Data ', ' Silahkan dicek kembali');
}elseif(!$update_supplier){
Alert::error('data gagal disimpan ', ' Silahkan coba lagi');
}
return redirect()->back();
}
这是路线
//Daftar Supplier
Route::get('daftar_supplier','\App\Http\Controllers\DaftarSupplierController@index')->name('daftar_supplier');
Route::post('daftar_supplier/create','\App\Http\Controllers\DaftarSupplierController@create')->name('daftar_supplier.create');
Route::delete('daftar_supplier/delete/{id}','\App\Http\Controllers\DaftarSupplierController@delete')->name('daftar_supplier.delete');
Route::put('daftar_supplier/update/{id}', '\App\Http\Controllers\DaftarSupplierController@update')->name('daftar_supplier.update');
请帮忙
您可能没有将 $daftar_supplier
传递给控制器中的视图。它应该在您尚未共享的 DaftarSupplierController@index
的末尾。一般来说,你应该根据 https://laravel.com/docs/8.x/views#passing-data-to-views
此外,最好在 @foreach
循环中为数组和值使用不同的变量名称,例如:
@foreach($daftar_suppliers as $daftar_supplier)
请注意遵循简单的变量命名约定。
单数 Object 或记录 - $daftar_supplier 单数 record/object
复数 collection 条记录 - collection 条 daftar_supplier 条 daftar_supplier 记录
这不仅使代码易于阅读和理解 - 它还避免了运行时的歧义。
在问题 blade 视图的片段中,@foreach($daftar_supplier as $daftar_supplier)
使用完全相同的变量名称 collection 以及循环遍历 collection 时的单个记录。
这样的命名约定不仅使代码难以阅读和理解,还会在运行时产生歧义。
因此 id="editModal-{{ $daftar_supplier->id }}"
可以在运行时进行评估,就像您尝试访问 collection 而不是单个 object 上的 id
属性 一样。
当然 id
是 collection 中的单个记录 属性,而 collection 本身没有 id
属性 所以在运行时可能会抛出错误。