2016-04-19 24 views
0

現在我得到一些模型,除了一個以外,所有的屬性都被填充了。Laravel 5.從現有模型實例中查詢?

所以我想在數據庫中進行搜索,看看是否有一些註冊表匹配所有的屬性值,在這種情況下,獲取最後一個屬性值並保留它。

現在即時通訊進行查詢的機智查詢生成器,讓這一切在哪裏這樣的:

$query->Model::select()->where(field, $instance->field); 
$query->where(field2, $instance->field2); 
... 
$query->get(); 

但我想知道是否有某種方式來建立一個快捷方式一樣......

$instance->get(); 
+2

請看看Eloquent文檔。您需要的所有東西都包含在內,包括示例和常見用例。 https://laravel.com/docs/5.2/eloquent –

回答

1

是的,你可以通過在模型中定義這樣

class YourModel extends Model 
{ 
    public function getFiltered() 
    { 
    return Model::where('field1',$this->field1)->where('field2',$this->field2)->get(); 
    } 
} 

方法做到這一點,你可以這樣訪問:

$instance->getFiltered(); 

您不能保留函數名'get',因爲它已被用於正在擴展的Model中。但是,您可以從getFiltered更改爲任何未使用的內容。就像如果模型是用戶,並且函數getFiltered給出了用戶的評論,那麼它可以是評論。

+0

不錯,對不起,很難回答。 非常乾淨,那就是我一直在尋找的東西。 謝謝:) – Sampudon

+0

完成。再次感謝您:) – Sampudon

+0

@Sampudon沒問題。 –