Laravel - Попытка получить свойство 'имя' необъекта в Admin / User / Index - PullRequest
0 голосов
/ 08 марта 2020

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

1 Ответ

0 голосов
/ 08 марта 2020

Используйте это with

 public function index()
    {
        $users = User::with('role')->get();
        return view('admin.users.index', compact('users'));
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...