Laravel使用åäö序列化模型,以便在redis队列中发挥作业抛出错误

时间:2016-03-03 10:27:15

标签: serialization laravel-5.2

我有一个基本的工作,它接受一个数字和一条消息,然后存储它。一切正常,除非消息中包含åäö等瑞典字符,然后我最终得到以下错误:

exception 'ErrorException' with message 'Undefined index: job' in /Library/WebServer/Documents/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php:125

这就是我的工作

namespace App\Jobs;

use App\Jobs\Job;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Log;    

class QueueIncoming extends Job implements ShouldQueue
    {
        use InteractsWithQueue, SerializesModels;

        private $number;
        private $message;

        public function __construct($number, $message)
        {
            $this->number = $number;
            $this->message = $message;
        }

        public function handle()
        {
            Log::info("QueueIncoming: started");
        }
    }

如何在Laravel工作中存储像åäö这样的角色?

1 个答案:

答案 0 :(得分:0)

只要他们使用UTF-8编码,

Laravel 5.2中的SerializesModels将支持åäö。如果您遇到此错误,可能是您的åäö字符使用的是ISO-8859-1编码或其他一些编码。

我的问题的解决方案是在可能有åäö的文本上使用utf8_encode()。

$this->message = utf8_encode($message);