2014-10-06 103 views
0

林有一个小问题,我不明白..视图中的未定义变量?

我的控制器:

<?php 

class SearchController extends BaseController{ 

    public function postSearch(){ 

     $course = Input::get('course_category'); 

     if(empty($course)){ 

      return Redirect::route('search') 
      ->with('global','<div class="alert alert-danger" role="alert" align="center">Du måste välja kurs och universitet!</div>'); 

     }else{ 

      $courses = Posts::where('course_category','LIKE','%'.$course.'%')->get(); 

      return View::make('search') 
          ->with('course_category',$courses) 
          ->with('courses',$courses); 
     } 

    } 
} 

笔者认为:

@extends('layout.main') 
@section('content') 



{{Form::open(array('method' => 'POST', 'route' =>array('post-search')))}} 

<div class="form-group"> 
    {{Form::label('course_category','Språk')}} 
    {{Form::select('course_category',array(
     ''    =>'-Choose--', 
     'php'   => 'PHP', 
     'javascript'  =>'Javascript', 
     'java'   =>'Java', 
     'C#'    =>'C#', 
     'html'   =>'HTML', 
     'css'   =>'CSS', 
     '.net'   =>'.NET', 
     'jquery'   =>'jQuery', 
     'ajax'   =>'Ajax' 

    ))}} 
</div> 

    {{Form::submit('Sök',array('class'=>'btn btn-info'))}} 

    {{Form::token()}} 

{{Form::close()}} 


@if($courses->count()) 

    @foreach($courses as $c) 

     <p>{{$c->title}}</p> 

    @endforeach 

@endif 

@stop 

这是错误我的查看搜索投掷:

ErrorException(E_UNKNOWN) 未定义的变量:课程(查看:/Applications/MAMP/htdocs/LaraBoost/app/views/search.blade.php)

这怎么可能是$当我将它传递给Controller的视图时,视图中的课程变量是未定义的?

我错过了什么?

回答

0

的样子,你在你的控制器代码有问题,逻辑似乎不正确的,但要克服你可以尝试这样的观点的问题:

@if(isset($courses) && $courses->count()) 
    //... 
@endif 

由于$courses是不确定的,则它不会被发送。如果你试试这个,请改为

@if(isset($courses) && $courses->count()) 
    //... 
@else 
    {{'No Courses'}} 
@endif 

你会明白,它会让你明白你在做什么。

+0

它的工作原理!谢谢! :)所以我需要如果变量isset,如果它的任何记录在数据库中?对?你能给我一个提示吗?我的控制器的逻辑?当用户没有从列表中选择任何内容并点击搜索时,我想让i语句发生。这就是为什么我使用if(空($ courser)).... – Spoofy 2014-10-06 18:36:19

+0

可能重定向正在发生,请检查视图中的$ course_category。 – 2014-10-07 01:18:05