这是我的laravel自定义访问器,我将使用它附加
protected $appends = [leave_balances];
public function getLeaveBalancesAttribute() {
// some code
}
我希望在调用此访问器时传递一个参数,如下所示
public function getLeaveBalancesAttribute($parameter) {
// use $parameter here
}
$payslip = Payslip::find(1);
\Log::debug($payslip->leave_balances("PARAMETER"));
我已经搜索,发现这是不可能的。请有人能提供任何解决方案,我需要通过这个参数。
3条答案
按热度按时间lg40wkob1#
除非你想让它作为一个属性,否则你不会附加属性,
你可以只创建一个方法,因为你像方法一样调用它
在工资单模型中
你就可以把它当作
u0njafvf2#
如果您声明了一个属性,则只能按如下方式使用它(遵循您的示例:
您(我认为)需要的是
setLeaveBalancesAttribute
,因此您可以传递一个值并对它执行任何您想要的操作:但是,如果您使用的是Laravel 9+,请务必使用新的定义属性的方式,这样会更好。
w8biq8rn3#
你可以在有访问器的模型中设置属性
$appends
,类似于:然而,我认为这将是您对所声明的模型所做的大多数响应或查询。
另一个选项是使用
::find
方法创建模型的单个示例。例如:以下是文档参考:https://laravel.com/docs/9.x/eloquent-mutators#defining-an-accessor