我正在尝试使用以下功能在使用Twig视图模板时显示库存水平标志。但是我收到以下错误:LogicException Cart \ Models \ Product :: hasLowStock必须返回一个关系实例。 我已经研究了一段时间,找不到解决方法。我对php比较陌生。
这是我的代码:
namespace Cart\Models;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
public function hasLowStock()
{
if($this->outOfStock()) {
return false;
}
return (bool) $this->stock <= 5;
}
public function outOfStock()
{
return $this->stock === 0;
}
public function inStock()
{
return $this->stock >= 1;
}
public function hasStock($quantity)
{
return $this->stock >= $quantity;
}
}
这是我用来显示产品/库存的树枝视图: {%扩展了'templates / app.twig'%}
{% block content %}
<div class="container mt-4">
<div class="row">
<div class="col-md-6">
<img src="{{ product.image }}" alt="{{ product.title }} image." class="card img-fluid">
</div>
<div class="col-md-6">
{% if product.hasLowStock %}
<span class="label label-warning">Low stock</span>
{% endif %}
{% if product.outOfStock %}
<span class="label label-danger">Out of stock</span>
{% endif %}
{% if product.inStock %}
<span class="label label-danger">Out of stock</span>
{% endif %}
<h3>{{ product.title }}</h3>
<p>{{ product.description }}</p>
</div>
</div>
</div>
{% endblock %}
答案 0 :(得分:0)
hasLowStock()
等是方法,而不是属性:
{% if product.hasLowStock() %}
{% if product.outOfStock() %}
{% if product.inStock() %}
您也可以使用accessors:
public function getHasLowStockAttribute()
{
[...]
}
然后您可以将其作为属性访问:
{% if product.hasLowStock %}