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

时间:2018-11-26 10:12:35

标签: laravel laravel-5

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

型号:

protected $appends = ['convertedImage'];

public function getconvertedImageAttribute(String $logo_base64) {
    //actions here
}

查看:

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

我的问题是如何在调用Model :: all();时将View_logo_base64设置为Model方法getconvertedImageAttribute()的参数。

1 个答案:

答案 0 :(得分:1)

首先,必须添加静态设置器以将logo_base64设置为模型:

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

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

 \App\Model::setLogoStringToBase64(your_value) 

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

protected $appends = ['converted_image'];

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

请注意ConvertedImageAttribute中的大写字母“ C”。 就这样。

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