Laravel - Попытка получить свойство 'name' не-объекта (представление: C: \ xampp \ htdocs \ LaraProjects \ blog-22 \ resources \ views \ admin \ users \ index.blade . php)
** Я застрял с этой ошибкой в Laravel:
Что-то не так с моим кодом?
код моей модели: **
основная причина в том, что role_id не сохраняется в базе данных. и вышеупомянутая ошибка происходит. когда я проверяю свою базу данных. все данные сохранены, но единственный role_id пуст. Я думаю, что главная причина ошибки. пожалуйста
модель пользователя:
<?PHP
namespace App;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password','role_id','is_active','photo_id','',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
public function role(){
return $this->belongsTo('App\Role');
}
}
**Role Model:**
<?PHP
namespace App;
use Illuminate\Database\Eloquent\Model;
class Role extends Model
{
}
Мой контроллер:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\User;
use App\Role;
class AdminUsersController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$users = User::all();
return view('admin.users.index', compact('users'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
$roles = Role::all();
return view('admin.users.create', compact('roles'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$this->validate($request, [
'name' => 'required',
'email' => 'required',
'role' => 'required',
'status' => 'required',
'password' => 'required',
]);
User::create($request->all());
// return $request->all();
return redirect('/admin/users');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}
Просмотр есть:
<!-- Header Area -->
@include('/admin/partials/header')
<!-- Nav Area -->
@include('/admin/partials/nav')
<!-- Sidebar Area -->
@include('/admin/partials/sidebar')
<div id="layoutSidenav_content">
<main>
<div class="container-fluid">
<h1 class="mt-4">Create Users</h1>
<div class="card mb-4">
<div class="card-header"><i class="fas fa-table mr-1"></i>All Users Data</div>
<div class="card-body">
<form method="post" action="{{ action('AdminUsersController@store') }}" enctype="multipart/form-data">
{{ csrf_field() }}
<div class="form-group">
<label for="user">Name</label>
<input type="text" name="name" class="form-control" id="user" placeholder="Name">
</div>
<div class="form-group">
<label for="email">Email</label>
<input type="text" name="email" class="form-control" id="email" placeholder="Email">
</div>
<div class="form-group">
<label for="role">Role</label>
<select class="form-control" name="role">
<option value="">--Choose Role</option>
@if (count($roles)>0)
@foreach ($roles as $role)
<option value="{{$role->id}}">{{$role->name}}</option>
@endforeach
@endif
</select>
</div>
<div class="form-group">
<label for="status">Status</label>
<select class="form-control" name="status" id="status">
<option value="">Select status</option>
<option value="0">Active</option>
<option value="1">Not Acive</option>
</select>
</div>
<div class="form-group">
<label for="file">Upload</label>
<input type="file" name="file" id="file">
</div>
<div class="form-group">
<label for="password">Password</label>
<input type="password" name="password" class="form-control" id="password" placeholder="password">
</div>
<button type="submit" class="btn btn-primary">Create User</button>
</form>
</div>
</div>
</div>
@include('msgs.error')
</main>
<!-- Footer Area -->
@include('/admin/partials/footer')