2014-04-03 34 views
0

我有這個laravel模型方法調用:Laravel 4 - 獲取模型屬性的子集

$entry = self::firstOrCreate(array('url' => $url, 'version' => $version)); 

但它有一個問題:其中一列是一個可容納真正的大數據我不一個TEXT列(在這種情況下)。

我需要什麼:一種在不加載內容(TEXT)數據的情況下加載或創建此模型的方法。

問題:有沒有一種模型方法可以用來代替這個,或者我缺少一個參數?

回答

1

不使用firstOrCreate,因爲您需要發出一些自定義選擇。我建議使用firstOrFail,捕捉異常,然後創建一個新模型。

$payload = compact('url', 'version'); // Build an associative array out of the variables. 

try 
{ 
    $entry = Model::where('url', $url)->where('version', $version)->firstOrFail(array_keys($payload)); 
} 
catch (Illuminate\Database\Eloquent\ModelNotFoundException $e) 
{ 
    $entry = Model::create($payload); 
} 
+0

是的......這是我的後備。編輯你的答案,因爲你有一個小的語法錯誤(catch之前丟失大括號)。 –

+0

Woops,很好​​。嘿。歡呼聲,祝你好運! –