0

在此处输入图像描述错误 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');
}
4

2 回答 2

0

在您的索引函数中的语句$churchdetails = Church::all();中,您有一个分号。这只是一个错字吗?此外,您可能需要重新检查您定义的关系。如果我理解正确的话,在你的教会职能中,你是说一个教会属于许多教会,而不是一个拥有许多牧师的教会。教堂的功能应该类似于

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

如果你想说一个教会有很多牧师

对于属于教会的牧师来说,它应该是

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

另一件事,在你的形式中,你是否一次将一名牧师添加到教堂?我问你的很多字段/变量名称是否是复数的原因,但从我可以看到的情况来看,就像'$pastors = New Pastor;' 您的商店功能中的声明是添加一个 $pastor

于 2017-03-03T17:33:23.237 回答
0

我假设您在创建路线上遇到此错误。您的create()方法使用addpastor视图,但churchdetails不像您的index()方法那样传递。

因此,您的create()方法会出错,指出未定义教堂详细信息。

确保您的create()方法传入它需要的数据:

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

    return view('addpastor')
        ->withchurchdetails($churchdetails);
}   
于 2017-03-03T17:43:20.727 回答