2
我正在使用一個構造來獲取請求變量只有一次,因爲我需要在多個方法中使用它們,我不想重複代碼。
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)
我的問題是,我可以索姆不管怎樣,在使用構造的標籤方法中使用變量,還是有更好的方法來完成這個?
太棒了,非常感謝:)編輯:不幸的是我得到了同樣的錯誤。但我會研究這一點。 – Hardist
沒問題。這是什麼版本的PHP? – Will
請參閱我對5.4版以下版本的編輯。 – Will