我知道下面的錯誤是來自,但我不知道如何解決它。Laravel關係搜索功能
錯誤:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'expenses.date' in 'where clause' (SQL: select count(*) as aggregate from
expenses_sections
whereexpenses
.date
LIKE %2015-12%)
是什麼原因造成它(在我的控制器):
if($view === 'section') {
$query = Section::query();
$query->with(['expenses' => function($query) use ($search){
$query->where('date', 'LIKE', '%2015-' . $search . '%')->get();
}]);
}
我有我用它來改變頁面佈局的選擇菜單。我有另一個選擇菜單,我只用來顯示某個月的結果。上面的錯誤是我在選擇一個月時得到的,因爲查詢在錯誤的表格中查找(因爲上面的代碼)。結果使用費用和部分之間的關系顯示。我想基本上是尋找在expenses
表的結果,而不是expenses_sections
表着,當然不打破關係,因爲基於關係,正在顯示我的佈局。
費用型號:
class Expense extends Model
{
public function section()
{
return $this->belongsTo('App\Http\Models\Expenses\Section');
}
}
科型號:
class Section extends Model
{
public function expenses()
{
return $this->hasMany('App\Http\Models\Expenses\Expense');
}
}
'expense'是否有'date'字段? –
如果您有已經expenses_id和SECTION_ID expenses_sections,你應該使用hasManyThrough(),但我總是很難得到這些工作的第一次如此,而不是我試圖回答這個問題,有這樣的以待更好的答辯讀:HTTP: //laravel.com/docs/5.1/eloquent-relationships#has-many-through – markdwhite
真棒,這是更好地ofcourse讀它自己,而不是得到一個答案,我可以立即使用的,所以我感謝你! :) – Hardist