2017-05-04 8 views
0

5.2보기 :"정의되지 않은 변수"나는 매개 변수를 사용하여이 경로 포함하면 내보기에서 정의되지 않은 변수 오류를 받고 있어요

:

가 여기에 주어진보기에 대한 내 전체 컨트롤러의
<div class="table-toolbar"> 
    <div class="row"> 
    <div class="col-md-6"> 
     <div class="btn-group"> 
     <a href="{{ route('major-facilities.add', $campusMajorId) }}" class="btn btn-md btn-success"><i class="fa fa-plus"></i> Add new</a> 
     </div> 
    </div> 
    </div> 
</div> 

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use App\Model\CampusMajor; 
use App\Model\CampusMajorsFacilities; 

class CampusMajorsFacilitiesController extends Controller 
{ 
    // 
    public function index($campusMajorId) 
    { 
     $campusMajorsFacilities = CampusMajorsFacilities::ofCampusMajor($campusMajorId)->get(); 
    $data = [ 
     'campusMajorsFacilities' => $campusMajorsFacilities, 
     'campusMajor' => $campusMajorId 
    ]; 

    return view('major-facilities.index', $data); 
} 

public function add($campusMajorId) 
{ 
    $campusMajorsFacilities = new CampusMajorsFacilities; 

    $data = [ 
     'campusMajorsFacilities' => $campusMajorsFacilities, 
     'campusMajorId' => $campusMajorId, 
     'formIs'   => 'add' 
    ]; 

    return view('major-facilities.form', $data); 
} 

public function save(Request $request,$campusMajorId) 
{ 
    $this->validation($request); 
    $post = $request->all(); 
    $campusMajorsFacilities = $this->bindToObject($post,$campusMajorId); 
    $campusMajorsFacilities->save(); 

    return redirect()->route('major-facilities.index', $campusMajorId)->with('message','Item added Succesfully'); 
} 

public function edit($campusMajorId, $id) 
{ 
    $campusMajorsFacilities = CampusMajorsFacilities::find($id); 

    $data = [ 
     'campusMajorsFacilities' => $campusMajorsFacilities, 
     'campusMajorId' => $campusMajorId, 
     'formIs'   => 'edit' 
    ]; 

    return view('major-facilities.form', $data); 
} 

public function update(Request $request,$campusMajorId,$id) 
{ 
    $this->validation($request); 
    $post = $request->all(); 
    $campusMajorsFacilities = $this->bindToObject($post,$campusMajorId,$id); 
    $campusMajorsFacilities->save(); 

    return redirect()->route('major-facilities.index', $campusMajorId)->with('message','Item updated Succesfully'); 
} 

private function validation($request) 
{ 
    $this->validate($request,[ 
      'title' => 'required', 
      'description' => 'required', 
      'content'  => 'required', 
      'campus_major_id' => 'required' 
     ]); 
} 

public function delete($campusMajorId,$id) 
{ 
    $campusMajorsFacilities = CampusMajorsFacilities::find($id); 
    $campusMajorsFacilities->delete(); 

    return redirect()->route('major-facilities.index', $campusMajorId)->with('message','Item deleted Succesfully'); 
} 

private function bindToObject($post,$campusMajorId,$id=null) 
{ 
    if(is_null($id)){ 
     $campusMajorsFacilities = new CampusMajorsFacilities; 
    } else { 
     $campusMajorsFacilities = CampusMajorsFacilities::find($id); 
    } 

    $campusMajorsFacilities->major_campus_id = $campusMajorId; 
    $campusMajorsFacilities->title = $post['title']; 
    $campusMajorsFacilities->description = $post['description']; 
    $campusMajorsFacilities->content = $post['content']; 

    return $campusMajorsFacilities; 
} 

}

그리고 내 모델

<?php 

namespace App\Model; 

use Illuminate\Database\Eloquent\Model; 
use Illuminate\Database\Eloquent\SoftDeletes; 

class CampusMajorsFacilities extends Model 
{ 
    // 
    use SoftDeletes; 

public function CampusMajor() 
{ 
    return $this->belongsTo('App\Model\CampusMajor'); 
} 

public function scopeOfCampus($query, $campus_id) 
{ 
    return $query->where('campus_id', $campus_id); 
} 

public function scopeOfCampusMajor($query, $campus_major_id) 
{ 
    return $query->where('campus_major_id', $campus_major_id); 
} 
} 

내가보기에 합격 한 경로를 주석 처리하면 어디서 잘못되었는지 알 수 없습니다.

+0

'index' 메소드는'campusMajor' 속성을 추가합니다. 그게 '캠퍼스 메이어 아이드'가 아니야? – Phil

+0

예'campusMajor' 속성은'campusMajorId'로 지정되었습니다. – goateee25

+0

* typo *로 닫는 투표 * – Phil

답변

0

당신은 campusMajor 만하지 campusMajorId로 볼 컨트롤러에서 $ campusMajorId를 통과했다.

따라서 변수는 뷰에서 정의되지 않습니다.

+1

간단한 * 오타 * 문제에 대해서는 가까운 투표가 있습니다. 이러한 유형의 질문에 대한 대답은 도움이되지 않습니다. – Phil

+0

오 세상에, 그것을 깨닫지 못했습니다. 감사! – goateee25