1
我對Laravel非常新,並且正在瀏覽教程,並且遇到了一些問題。Laravel 5.2中的錯誤Eloquent - 無法轉換爲字符串
我有一個複雜的查詢,我需要重用where子句中的一個參數更改。我將其添加爲我的模型中的查詢範圍,然後從我的相應控制器調用它。當我嘗試返回數據,雖然我得到這個錯誤:
Object of class Illuminate\Database\Eloquent\Builder could not be converted to string
下面是該查詢範圍:
public function scopeCrosstab($wellID)
{
return static::select('sampleDate', \DB::raw("
max(if(chemID=1, pfcLevel, ' ')) as 'PFOA', max(if(chemID=1, noteAbr, ' ')) as 'PFOANote'
"))
->leftJoin('SampleNote', 'WellSample.noteID', '=', 'SampleNote.noteID')
->where('wellID', '=', $wellID)
->groupBy('sampleDate');
}
這裏是控制器代碼:
public function smith()
{
$wellSamples = WellSample::crosstab(2);
return $wellSamples->get();
//return view('pages.wellsample', compact('wellSamples'));
}
我曾嘗試許多不同的用引號括起來的代碼排列,用雙引號等等。如果我在查詢範圍內硬編碼它的值,但是我需要能夠使它成爲動態的。
謝謝 - 做到了。出於好奇,這個$查詢變量是從哪裏來的? – JamesE
它來自Laravel。當你調用該範圍時,通過$ query變量的場景後面有一點「魔力」。 https://laravel.com/docs/5.2/eloquent#local-scopes –