Как исправить неопределенную ошибку переменной в laravel - PullRequest
0 голосов
/ 03 апреля 2019

Я очень новичок в этом, поэтому искренне извиняюсь, если это глупый вопрос!

У меня есть две таблицы в моей базе данных - «пользователи» и «отделы». Я пытаюсь назначить «пользователя» для «отдела» в качестве менеджера отдела и сохраняю его user_id в таблице отдела.

То, что я хочу сделать, это иметь возможность выбирать из выпадающего списка пользователей в форме создания отдела, но я получаю ошибку ниже:

Неопределенная переменная: пользователи (Просмотр: /home/vagrant/code/PortfolioManager/resources/views/admin/departments/index.blade.php)

Кто-нибудь знает, где я иду не так? Я пытался решить эту проблему в течение 2 дней.

Код модели моего отдела ниже:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

    class Department extends Model
    {
        protected $fillable = [
            'name',
            'user_id'
        ];

        public function user(){

            return $this->belongsTo('App\User');
        }
    }

Мой контроллер также здесь:

<?php

namespace App\Http\Controllers;

use App\Department;
use App\Http\Requests\StoreDepartmentRequest;
use App\User;
use Illuminate\Http\Request;

use App\Http\Requests;

class AdminDepartmentsController extends Controller
{
    public function index()
    {
        $departments = Department::all();

        return view('admin.departments.index', compact('departments'));
    }


    public function create()
    {
        $users = User::lists('name', 'id')->all();
        return view('admin.departments.index', compact('users'));
    }


    public function store(StoreDepartmentRequest $request)
    {
        Department::create($request->all());

        return redirect('admin.departments.index');
    }

Моя страница index.blade здесь:

<h1>Departments</h1>

<div class="col-sm-6">

    {!! Form::open(['method'=>'POST', 'action'=>'AdminDepartmentsController@store']) !!}

    {{--Name field which is displayed empty--}}
    <div class="form-group">
        {!! Form::label('name', 'Department Name:') !!}
        {!! Form::text('name', null, ['class'=>'form-control']) !!}
    </div>

    <div class="form-group">
        {!! Form::label('user_id', 'Department Manager:') !!}
        {!! Form::select('user_id', ['' => 'Choose Department Manager'] + $users, null, ['class'=>'form-control']) !!}
    </div>

    <div class="form-group">
        {!! Form::submit('Create Business Department', ['class'=>'btn-btn-primary']) !!}
    </div>

    {!! Form::close() !!}


</div>

1 Ответ

0 голосов
/ 04 апреля 2019

Ваш метод создания неправильный ... напишите код ниже:

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