【发布时间】:2020-05-04 20:13:42
【问题描述】:
我希望能够通过管理面板编辑我的用户,但这会给我返回以下错误:
试图获取非对象的属性“id”
如果我更改它,调用变量 ID 在我看来将是一个错误。我的变量名称与我的变量名称相同。
我使用 users 表,我的代码中没有其他地方有问题
请帮帮我
URI : /role-edit/{id}
View :
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="card">
<div class="card-header">
<h4>Edit register roles</h4>
</div>
<div class="card-body">
<form action="/role-register-update/{{ $users->id }}" method="POST">
{{ csrf_field() }}
{{ method_field('PUT') }}
<div class="form-group">
<label>Name</label>
<input type="text" name="name" value="{{ $users->name }}" class="form-control">
</div>
<div class="form-group">
<label>Give role</label>
<select name="type" class="form-control">
<option value="admin">Admin</option>
<option value="vendor">Vendor</option>
<option value="">None</option>
</select>
<button type="submit" class="btn btn-success">Update</button>
<a href="/role-register" class="btn btn-danger">Cancel</a>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
Controller :
class DashboardController extends Controller
{
public function registered()
{
$users = User::all();
return view('admin.registeradmin')->with('users', $users);
}
public function edit(Request $request,$id)
{
$users = User::findOrFail($id);
return view('admin.edit-register')->with('users',$users);
}
public function update(Request $request, $id)
{
$users = User::findOrFail($id);
$users->name = $request->input('name');
$users->usertype = $request->input('type');
$users->update();
return redirect('/role-register')->with('status', 'You data is update');
}
public function destroy($id)
{
$users = User::where('id', $id);
if ($users != null)
{
$users->delete();
return redirect('/role-register')->with('status', 'User is correctly deleted !');
}
return redirect('/role-register')->with('status', 'User is not correctly deleted !');
}
}
Routes :
Route::get('/', function () {
return view('pages.home');
});
Route::get('/aboutus', function () {
return view('pages.aboutus');
})->name('aboutus');
Auth::routes();
Route::get('profile', 'UserProfileController@show')->middleware('auth')->name('profile.show');
Route::post('profile', 'UserProfileController@update')->middleware('auth')->name('profile.update');
Route::get('/home', 'HomeController@index')->name('home');
Route::group(['middleware' => ['auth', 'admin']], function () {
Route::get('/dashboard', function () {
return view('admin.dashboard');
});
Route::get('/role-register', 'Admin\DashboardController@registered');
Route::get('/role-edit/{id}', 'Admin\DashboardController@edit');
Route::put('/role-register-update/{id}', 'Admin\DashboardController@update');
Route::delete('/role-delete/{id}', 'Admin\DashboardController@destroy');
});
【问题讨论】:
-
请您显示返回视图的控制器方法。
-
公共函数编辑(请求 $request, $id) { $users = User::findOrFail($id);返回视图('admin.edit-register')->with('users',$users); }
-
您提供的代码看起来不应该导致错误。错误
Trying to get 'id' of non-object本质上只是说您在不是对象的东西上使用了->id`(->用于访问对象的属性或调用方法)。有些人通常怀疑这是一个变量null或者它是一个数组,但它可能是别的东西。该错误是否为您提供了更多信息,即导致错误和/或堆栈跟踪的文件(可能还有行)?另外,这是在您提交表单之前还是之后发生的? -
是的,错误给了我行和文件,我认为这两行:
-
我的错误将来自 {{$ users-> id}} 但在我的控制器中我声明了变量并在我不理解的视图中调用它,或者我做了另一个错误