将控制器属性共享到模型方法 - laravel



我有一个问题 - 是否可以在 laravel 中将属性从控制器传递或共享到模型。下面是"问题"的一些代码示例。

基本上我有一个模型方法,该方法以给定货币获取产品价格。

class Product extends Model
{
public function getPrice()
{
return number_format($this->price_retail / $this->sessionHelper->getCurrentCurrency()->conversion_rate, 2);
}
}

sessionHelper 是单独的类,它提供有关当前货币的信息。我想删除这部分并从控制器中使用属性

在项目中,我的产品控制器可以访问从baseController扩展的全局变量:

class ProductController extends BaseController
{
protected $product;
public function __construct(Product $product)
{
parent::__construct();
$this->product = $product;
$this->currentCurrency  //gives current currency info which i need in model
}
//test function
public function showFirstProductPrice(){
$this->product->first()->getPrice();
}
}

我可以做一些事情,比如通过这样的函数传递变量:

$this->product->first()->getPrice($Variable);

但每次我都需要通过$variable。目前我直接调用模型方法,该方法正在调用货币兑换率的助手并且它正在工作,但我想有更好的方法可以做到这一点。

有人有什么想法吗?

当然,你可以传递一个变量。

class Product extends Model
{
public function getPrice($variable)
{
return number_format($this->price_retail /$variable, 2);
}
}

在您的控制器中,您可以执行此操作

class ProductController extends BaseController
{
protected $product;
public function __construct(Product $product)
{
parent::__construct();
$this->product = $product;
$this->currentCurrency  //gives current currency info which i need in model
}
//test function
public function showFirstProductPrice(){
$this->product->first()->getPrice($variable);
}
}

相关内容

  • 没有找到相关文章

最新更新