Laravel 4下拉列表

时间:2014-10-02 16:22:09

标签: php laravel

我已经制作了一个下拉列表,其中包含' destination-from'单向价值'来自数据库的表。遵循本教程:http://www.laravel-tricks.com/tricks/easy-dropdowns-with-eloquents-lists-method

但每当我尝试运行它时,它都会给我带来这样的错误:未定义的变量:类别这里的问题似乎是什么?我真的很陌生。 laravel上的新手。

以下是我的代码:

onewayflight.blade.php

  $categories = Category::lists('destination-from', 'title');
      {{ Form::select('category', $categories) }}

onewayflightcontroller.php

  public function onewayflightresults()
{
  return View::make('content.onewayflight');

  $list = DB::table('oneways');
  $listname = Oneways::lists('destination-from');

  $content = View::make('content.onewayflight', array('list'=>$list, 'listname'=>$listname));
}

我不确定我遗漏了什么。而且我也想知道模型是否与此有关?

2 个答案:

答案 0 :(得分:0)

模板中用于获取类别的代码需要被PHP标记包围,否则将无法执行。但更好的是 - 将它移动到它所属的控制器。

同样在您的控制器中,您将返回onewayflight()顶部的视图 - 此后不执行任何操作。

所以改变它的工作就像这样,你应该没事:

onewayflight.blade.php

{{ Form::select('category', $categories) }}

onewayflightcontroller.php

 public function onewayflight()
 {
    $categories = Category::lists('destination-from', 'title'); 

    return View::make('content.onewayflight', array('categories' => $categories));
  }

此外,在routes.php中,路径应如下所示:

Route::get('/your-route-path', [
    'as' => 'your_route_name',
    'uses' => 'onewayflightcontroller@onewayflight'
]);

答案 1 :(得分:0)

除了@ jd182的建议(因为我缺乏评论的声誉,我使用答案);你确定lists()函数/ facade返回除null以外的一些值。 PHP有时会将null值视为未定义。

您的刀片语法错误。如果你想在刀片文件中定义一个变量(不建议这样做),你应该将它包装在标签周围并将其作为常规的php文件来使用。