我有这个laravel模型方法调用:
$entry = self::firstOrCreate(array('url' => $url, 'version' => $version));
但它有一个问题:其中一列是一个TEXT列,它可以保存我不需要的大量数据(在此上下文中)。
我需要什么:一种在不加载内容(TEXT)数据的情况下加载或创建此模型的方法。
问题:我可以用一种模型方法代替这个,或者我缺少一个参数吗?
答案 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);
}