저는 Laravel을 처음 접했고 나는 무엇보다 논리와 더 관련이 있다고 생각하는 오류를 얻었습니다. 그러나 나는 극복하는 방법을 이해할 수없는 것 같습니다. 그것. 그래서 데이터베이스에있는 특정 문자열을 검색 할 수있는 간단한 양식의 페이지가 있습니다. 하지만 결과를 같은 페이지에 표시하고 싶습니다.Laravel 4 : 같은 페이지에서 변수를 얻으려고 시도합니다.
이 내 Route.php입니다 : 여기
는 지금까지이 무엇public function index()
{
return View::make('index');
}
public function search()
{
return View::make('index');
}
public function find()
{
$match = Input::get('find');
if($match) {
$results = Book::where('title', 'like', '%'.$match.'%')
->orWhere('author', 'like', '%'.$match.'%')
->get();
return View::make('index', array('results', $results));
} else {
return Redirect::to('/')->with('flash_error', 'No string added!');
}
}
그리고 내보기 (index.blade.php :
Route::get('/', '[email protected]');
Route::post('find', '[email protected]');
이 내 HomeController입니다) :
{{ Form::open(array('url' => 'find', 'method' => 'POST')) }}
{{ Form::text('find', '', array('class' => 'search-query', 'placeholder' => 'Search')) }}
{{ Form::submit('Submit', array('class' => 'btn btn-info')) }}
{{ Form::close() }}
@if (Session::has('flash_error'))
{{ Session::get('flash_error') }}
@endif
@foreach ($results as $result)
{{$result->title}}
@endforeach
각 foreach는 각 결과를 표시하는 일부 아약스로드로 대체됩니다.)
오류는 "정의되지 않은 변수 : 결과"라고 표시되며 foreach를 표시합니다. 나는이 페이지로가는 첫 번째 패스에서 아직 결과가로드되지 않았지만이 오류를 극복 할 수있는 이유는 무엇입니까? 데이터를 표시하기 위해 다른 페이지로 이동하지 않고 동일한 페이지에 데이터를 표시하려고합니다. 내가 말했듯이 이것은 대부분 논리와 관련이 있다고 생각합니다. (Laravel을 처음 접했을 때도 그렇습니다)
도움이 될만한 정보가 있습니까?
SO로 복사 할 때 오타가되었지만'HomeController'의'find()'메쏘드에서'orwhere()'메소드가 쿼리 빌더에 존재하지 않는지 확실치 않습니다. 'orWhere()'는 그렇습니다. –
또한 궁금한 점은'gen_index()'의 목적은 무엇인가? 왜'View :: make()'를'find()'로 옮기지 않겠습니까? –
orWhere()가 오타 였지만 gen_index가 실제로 아무 것도하지 않는 것은 맞습니다! 왜 내가 그런 식으로 수출하는 것이 자연 스럽던 지 모르겠다.결과적으로 내 질문이 업데이트되었습니다. 내 초기 문제에 대한 어떤 생각? – user3011462