1
關於範圍查詢,返回任何falsey
值是否會導致Eloquent\Builder
被返回?它會返回實際值(不管是數字,字符串,數組等),但如果我返回false,0,它總是爲空返回一個Eloquent \ Builder。如何從Laravel 4中的範圍查詢中返回falsey值?
有沒有辦法解決這個問題,並返回正確的類型時,falsey
而不是類型生成器的對象?
抽象測試用例
在型號
class MyModel extends Eloquent
{
public function scopeTestFalse{
return 0;
}
public function scopeTestTrue()
{
return 99;
}
}
在路線
var_dump(MyModel::scopeTestFalse()); // object(Illuminate\Database\Eloquent\Builder)
var_dump(MyModel::scopeTestTrue()); // int(99)
你是否將這些函數聲明爲'static'?上面的例子對我來說很好,在PHP 5.3.27上使用laravel 4.1 – cecilozaur
它們不是靜態的。當你說它工作正常,scopeTestFalse返回什麼? – Chris
'int(0)'另一個返回'int(99)', 請確保將所有函數聲明爲static,因爲Eloquent實現了__callStatic()函數(只要您嘗試訪問不屬於你正在調用的課程)。 希望這是有道理的。 – cecilozaur