Laravel 4 - 获取模型属性的子集

时间:2014-04-03 23:58:37

标签: php laravel-4 eloquent

我有这个laravel模型方法调用:

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

但它有一个问题:其中一列是一个TEXT列,它可以保存我不需要的大量数据(在此上下文中)。

我需要什么:一种在不加载内容(TEXT)数据的情况下加载或创建此模型的方法。

问题:我可以用一种模型方法代替这个,或者我缺少一个参数吗?

1 个答案:

答案 0 :(得分: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);
}