如何检索从模型返回的结果数组: -
$result = DB::select('select title from mainTable');
return $result;
在我的控制器中,以便我可以将其传递给我的视图: -
$title = "Main Page";
$data = //I want to assign the result to data
$view = View::make('mainpage')->with('data', $data)->with('title', $title);
答案 0 :(得分:2)
如果我正确理解了您的问题,那么您正在尝试弄清楚如何向$ data变量添加内容并将其传递给View。如果您指定了某些内容
$data['result'] = DB::select('select title from mainTable');
return View::make('main page', $data);
现在,您可以在刀片模板中以$ result结果访问查询结果。我肯定会建议使用ORM,以便您可以在单个查询中获得整个结果,如:
// Model /app/models/Main.php
class Main extends Eloquent {
protected $table = 'mainTable';
}
// Controller (within route method)
$data['result'] = Main::find(1);
/* Gets the mainTable result with an id of 1 */
return View::make('page', $data);
// Template /app/views/page.blade.php
<h1>{{ $result->title }}</h1>
<!-- Outputs the title for the result as an H1 HTML element -->
答案 1 :(得分:1)
你可以简单地创建一个这样的模型
class Main extends Eloquent {
protected $table = 'mainTable';
}
然后,从控制器中,您可以使用以下代码从mainTable
表中获取所有记录:
$title = "Main Page";
$data = Main::get(array('title'))->toArray(); // Or Main::all(['title']);
return View::make('mainpage')->with('data', $data)->with('title', $title);
更新:如果需要,可以使用此类内容
class Main extends Eloquent {
protected $table = 'mainTable';
public function scopeGatAllByFieldName($q, $field = null)
{
if(is_null($field)) return $q;
return $q->select([$field]);
}
}
您可以从控制器中将其命名为:
$title = "Main Page";
$data = Main::gatAllByFieldName('title')->get()->toArray();
return View::make('mainpage')->with('data', $data)->with('title', $title);
答案 2 :(得分:0)
Laravel文档(http://laravel.com/docs)在演示如何使用数据库和查询生成器模块方面做得非常出色。
"The select method will always return an array of results." (http://laravel.com/docs/database.)
$data = DB::select('select title from mainTable');
$view = View::make('mainpage')->with('data', $data)->with('title', $title);
我更喜欢使用Query Builder。
$data = DB::table('mainTable')->select('title')->get();
$view = View::make('mainpage')->with('data', $data)->with('title', $title);