Я использую конструкцию для получения переменных запроса только один раз, так как мне нужно использовать их более чем одним методом, я не хочу повторять код.
public function __construct(Request $request)
{
$this->labelId = $request->label;
$this->statusId = $request->status;
$this->monthId = $request->month;
}
Это работает для моего "стандартного" точки зрения, но не для "вида этикетки":
public function standard()
{
$appointments = Appointment::latest('start')->status($this->statusId)->label($this->labelId)->month($this->monthId)->get();
return view('appointments.index', compact('appointments'));
}
public function label(Request $request)
{
$appointments = Label::with(['appointments' => function ($query) use ($this->labelId, $this->statusId, $this->monthId) {
$query->label($this->labelId)->status($this->statusId)->month($this->monthId)->get();
}])->get();
return view('appointments.label', compact('appointments'));
}
Я получаю сообщение об ошибке:
Cannot use $this as lexical variable
И вопрос здесь :
function ($query) use ($this->labelId, $this->statusId, $this->monthId)
Мой вопрос в том, могу ли я сом ehow использовать переменные в любом случае в методе меток, используя конструкцию, или, может быть, лучший способ это сделать?
Awesome, спасибо большое :) Редактировать: К сожалению, я получаю ту же ошибку. Но я посмотрю на это. – Hardist
Нет проблем. Какая версия PHP это? – Will
См. Мои изменения о версиях ниже 5.4. – Will