2017-03-03 5 views
0

enter image description here 오류 churchdetails 정의되지 않습니다Laravel 따 버릴 5.4 에러 변수 정의되지 않은

이것은 pastorController입니다

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(); 
} 

이이 경로

Route::resource('pastor', 'pastorController'); 
Route::get('pastordetails', '[email protected]'); 
에게있는보기

@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 

입니다

churchdetails 변수가 정의되지 않았습니다. 나는 무엇을 놓치고 갔습니까? Pls는

도움 이미 색인 기능에 문 $churchdetails = Church::all();에서 교회와 목사

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

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

당신이 전체 오류를 게시 할 수 :

당신의 create() 방법이 필요로하는 데이터를 전달해야합니다? – Samsquanch

+0

제공 한 블레이드 파일이'addpastor' 또는'adddelegate'입니까? 어쨌든'$ churchname'을 사용할 수 없습니다 ... –

+0

그것은 addpastor를위한 것이지만 addpastor와 adddelegate는 같은 오류가 있습니다 –

답변

0

사이의 관계를 만들었습니다, 당신은 거기에 세미콜론이있다. 그건 그냥 오타예요? 또한 정의한 관계를 다시 확인해야 할 수도 있습니다. 교회의 기능면에서, 내가 올바르게 이해한다면 교회는 많은 목회자가있는 교회가 아니라 많은 교회에 속한다고 말하는 것입니다. 당신은 교회 많은 목사

와 교회에 속한 목사에 대한

을 가지고 말하려고하는 경우 교회의 기능은

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

또 다른 것은해야

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

과 같이해야한다 교회에 한 번에 담임 목사를 추가하고 있습니까? 필드/변수 이름이 복수형이지만 '$ pastors = New Pastor'와 같이 볼 수있는 것에서 물어 보는 이유입니다. 귀하의 상점 기능에있는 성명서에 $ 목사 1 명이 추가됩니다.

0

작성 경로에서이 오류가 발생한다고 가정합니다. create() 방법은 addpastor보기를 사용하지만 index() 메소드처럼 churchdetails을 전달하지 않습니다.

이 때문에 사용자의 create() 메서드에서 churchdetails가 정의되지 않았다는 오류가 발생합니다.

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

    return view('addpastor') 
     ->withchurchdetails($churchdetails); 
} 
+0

이미이 함수를 작성 함수에 추가했지만 여전히 작동하지 않습니다. 변수는 아직 정의되지 않았습니다. –