Переменная ошибки Laravel Plucking 5.4 не определена

введите описание изображения здесь Ошибка churchdetails не определяется:

Это пастор Контроллер

public function index()
{
    $pastors = Pastor::all();
    $churchdetails = Church::all()->pluck('church_name','church_address');
    return view('addpastor')->withpastors($pastors)->withchurchdetails($churchdetails);
}   

public function create()
{
   return view('addpastor');
}

public function store(Request $request)
{
    //validation input
    $this->validate($request, [
        'pastor_name' => 'required|max:100',
    ]);

    $pastors = New Pastor;
    $pastors->pastor_name = $request->pastor_name;

    $pastors->save();

    return redirect()->back();
}

Это мнение

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row">
        <div class="col-md-8 col-md-offset-2">
            <div class="panel panel-default">
                <div class="panel-heading">Add Church</div>
                <div class="panel-body">
                    {!! Form::open(['route' => 'pastor.store']) !!}
                        {!!  Form::label('churches_id', 'Church Details:', null, array('class' => 'col-md-4 control-label')) !!}

                        {!!  Form::select('churches_id', $churchdetails, null, array('class'=>'form-control', 'style' => 'height:34px', 'required' => ''))!!}


                    <div class="form-group">
                        {!! Form::label('pastor_name', 'Pastor Name:') !!}
                        {!! Form::text('pastor_name', null, array('class' => 'form-control', 'required' => '', 'maxlength' => '100')) !!}


                    {!! Form::submit('Save Church', array('class' => 'btn btn-primary', 'style' => 'margin-top: 20px')) !!}
                    {!! Form::close() !!}
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>

@endsection

Это маршрут

Route::resource('pastor', 'pastorController');
Route::get('pastordetails', 'pastorController@index');

переменная churchdetails не определена. Что я пропустил сделать? Пожалуйста, помогите

и я уже создал отношения между церковью и пастором

public function churches()
{
    return $this->belongsToMany('App\Church');
}

public function pastors()
{
    return $this->belongsToMany('App\Pastor');
}

2 ответа

В вашем заявлении $churchdetails = Church::all(); в вашей индексной функции у вас есть точка с запятой. Это просто опечатка? Также вам может понадобиться перепроверить ваши отношения, которые вы определили. В вашей работе с церквями вы говорите, что, если я правильно понимаю, церковь принадлежит многим церквям, а не церкви с множеством пасторов. функция церквей должна быть что-то вроде

return $this->hasMany(Pastor::class)

если вы хотите сказать, что в церкви много пасторов

и для пастора, принадлежащего к церкви, это должно быть

return $this->belongsTo(Church::class)

Другое дело, вы добавляете пастора в церковь одновременно? Причина, по которой я спрашиваю, являются ли многие имена ваших полей / переменных множественными, но из того, что я вижу, например: $pastors = New Pastor; оператор в вашей функции магазина добавляет один $ пастор

Я предполагаю, что вы получаете эту ошибку при создании маршрута. Ваш create() метод использует addpastor вид, но не проходит в churchdetails как твой index() метод делает.

Из-за этого ваш create() Метод выдаст ошибку, сказав, что церковные детали не определены.

Убедитесь, что ваш create() Метод передает необходимые данные:

public function create()
{
    $churchdetails = Church::pluck('church_name','church_address');

    return view('addpastor')
        ->withchurchdetails($churchdetails);
}   
Другие вопросы по тегам