У меня есть вопрос - можно ли передать или поделиться свойством от контроллера к модели в laravel. Вот пример кода "проблемы".
В основном у меня есть метод модели, который позволяет получить цену продукта в данной валюте.
class Product extends Model
{
public function getPrice()
{
return number_format($this->price_retail / $this->sessionHelper->getCurrentCurrency()->conversion_rate, 2);
}
}
sessionHelper - это отдельный класс, который предоставляет информацию о текущей валюте. Я хотел бы удалить эту часть и использовать свойство из контроллера
В проекте мой productController имеет доступ к глобальным переменным, расширенным из 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);
Но в поле зрения каждый раз, когда мне нужно будет передать переменную $. В настоящее время я вызываю метод модели напрямую, который вызывает помощника для курса обмена валюты, и он работает, но я думаю, что есть лучший способ сделать это.
У кого-нибудь есть идеи?