【发布时间】:2017-12-29 02:43:23
【问题描述】:
是否可以在测试期间暂时禁用Laravel 5.4 中的appends 功能?
protected $appends = [
'full_name',
];
我想忽略那个^。
我已经制作了一个模型工厂,但是在测试时我不想在我的模型上添加这些附加项。
【问题讨论】:
是否可以在测试期间暂时禁用Laravel 5.4 中的appends 功能?
protected $appends = [
'full_name',
];
我想忽略那个^。
我已经制作了一个模型工厂,但是在测试时我不想在我的模型上添加这些附加项。
【问题讨论】:
我在想这样的事情:
/**
* Get all appended items.
*
* @return array
*/
public function getAppends()
{
$vars = get_class_vars(__CLASS__);
return $vars['appends'];
}
/**
* Unset all appended items.
*
* @return $this
*/
public function unsetAppends()
{
collect($this->getAttributes())->pull($this->getAppends());
return $this;
}
但是@elegisandi 谢谢,效果很好。
【讨论】:
我用的这段代码是合适的:
例如测试型号名称Product
// get product with "id = 1" for example
$needed_product = Product::find(1)->toArray();
// remove un-used attributes
$product = new Product;
foreach ($product->appends as $attr) {
unset($needed_product[$attr]);
}
现在$needed_product 没有任何附加属性
【讨论】: