2017-01-29 2 views
0

데이터베이스에서 데이터 목록을 가져 와서 등록 양식의 드롭 다운으로 표시하려고합니다. 하지만 오류가 정의되지 않은 변수 대학 얻을.Laravel 5.4에 대한 등록 양식의 모델 바인딩

등록 컨트롤러

/** 
    * Create a new user instance after a valid registration. 
    * 
    * @param array $data 
    * @return User 
*/ 
    protected function create(array $data) 
    { 
     $universities = University::lists('id', 'university'); 
     $sch_depts = Department::lists('id', 'department'); 

     return User::create([ 
      'firstname' => $data['firstname'], 
      'lastname' => $data['lastname'], 
      'email' => $data['email'], 
      'password' => bcrypt($data['password']), 
      'university' => $data['university'], 
      'school_dept' => $data['school_dept'], 
     ]) 
     ->with(compact('universities','sch_depts')); 
    } 

register.blade.php

<div class="form-group{{ $errors->has('university') ? ' has-error' : '' }}"> 
          <label for="university" class="col-md-4 control-label">University</label> 

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

           {!! Form::select('university', $universities, null, array('id' => 'universitiy', 'class' => 'form-control')) !!} 

           @if ($errors->has('university')) 
            <span class="help-block"> 
             <strong>{{ $errors->first('university') }}</strong> 
            </span> 
           @endif 
          </div> 
         </div> 

것은 내가 오류 대학이 정의되지 않은 얻고있다.

+0

어떤 변경을해야합니까? 좀 더 설명해 주시겠습니까 –

+0

"var_dump ($ universities);" 바로 다음에 "$ universityities = University :: lists ('id', 'university');" - 출력은 어떻게 될까요? –

+0

같은 오류, 내가 만든 변수를 전달하는 잘못된 방법입니다 같아요. 그래서 정의되지 않은 오류가 발생했습니다 –

답변

0

컨트롤러가 RegisterController이라고 가정하면 create 메서드는 view 만 반환해야하며 해당 데이터입니다.

public function store(\Illuminate\Http\Request $request) 
{ 

    // your validation goes here 
    // or just use form request validation 
    // docs: https://laravel.com/docs/5.4/validation#form-request-validation 

    User::create([ 
     'firstname' => $request->get('firstname'), 
     'lastname' => $request->get('lastname'), 
     'email' => $request->get('email'), 
     'password' => bcrypt($request->get('password')), 
     'university' => $request->get('university'), 
     'school_dept' => $request->get('school_dept'), 
    ]); 

    // login user here or redirect to success page 

} 

하고 routes/web.php 파일이 포함되어 있어야합니다 다음과 같은 경로 :

Route::get('register', '[email protected]'); 
Route::post('register', '[email protected]'); 

이, read the docs Laravel 정말 기본하십시오입니다

public function create() 
{ 
    $universities = University::lists('id', 'university'); 
    $sch_depts = Department::lists('id', 'department'); 

    return view('register', compact('universities', 'sch_depts')); 
} 

는 당신은 또한 store 방법이 있어야합니다. 오후 8시 30 분 P.S. Laravel은 위의 Authentication 시스템과 함께 제공되며 사용자의 필요에 따라 재정의 할 수 있습니다.

+0

laravel 인증 시스템만을 사용하고 있습니다. 방금 등록보기를위한 드롭 다운에서 대학 목록을 얻는 방법을 원했습니다. 위의 사실을 알고 있습니다. 하지만 내 요구에 따라 Laravel 5.4의 RegisterController를 재정의하는 데 관심이 있습니다. –

관련 문제