Laravel:on Model::all()将参数设置为模型方法



我想在调用model::all((时为每个模型方法设置一个参数。

型号:

protected $appends = ['convertedImage'];
public function getconvertedImageAttribute(String $logo_base64) {
//actions here
}

视图:

<script>
var logo_base64 = '...logo_string_to_base_64...';
var allFrames = '{!! AppModel::all()->toJson() !!}';
</script>

我的问题是如何在调用Model::all((时将logo_base64从视图设置为Model方法getconvertedImageAttribute((的参数;

首先,您必须添加静态setter来将logo_base64设置到您的模型:

public static function setLogoStringToBase64($value) {
self::$logoStringToBase64 = $value;
}

此外,将静态变量添加到\App\Model类中。然后,在您的前端部分,您为您分配价值:

AppModel::setLogoStringToBase64(your_value) 

然后你必须像这样重写你的属性:

protected $appends = ['converted_image'];

public function getConvertedImageAttribute() { //actions here with your variable self::$logoStringToBase64 }

注意ConvertedImageAttribute中的大写字母"C"。仅此而已。

此外,您还可以覆盖模型的toJson方法。但我认为,这是不对的。

最新更新