【发布时间】:2014-07-04 07:44:36
【问题描述】:
我有两个查询,一个是通过使用数据透视表作为过滤器从主表(在本例中为学生)获取数据来处理数据。
$students=\DB::table('student')->join('school_student', 'student.id', '=','school_student.student_id')->get();
这会从控制器返回一个查询结果。但不会加载到刀片中:
$this->layout->content=\View::make('admin.students.index')->with('student', $students);
而此版本返回类似的更多数据(即每次输出所有学校数据) 但适用于刀片。
$students = \Student::with(array('schools' => function($query){$query->where('school_id', '=', 1);}))->get();
仅仅是DB和视图不兼容吗? 如果是这样,查询一张表的 Laravel 4 方法是什么,它只是数据透视表。
任何帮助表示赞赏。
在刀片中
@if($student->count())
第一个例子产生了这个错误:
Call to a member function count() on a non-object
【问题讨论】:
-
那么如果你
var_dump($student);在两个查询之后它们都包含相同的结构和数据? -
当你说“但不会加载到刀片中”时,这是否意味着你的视图变空了,或者它抛出了错误?这两种获取学生的方法是不等价的,您使用的第一种不使用模型和关系,而第二种使用。请发布刀片模板的代码,以便我们进行更多解释。
-
我已添加刀片问题。 @Jeemusu 第二个(不工作)产生一个更大的数组,但问题是数组没有通过。@unnawut 发布了刀片部分。有没有办法在没有额外数据的情况下使用模型?刀片参数不使用模型问题吗?
标签: laravel pivot-table blade