Настраиваемая черта шифрования нарушает функциональность углерода и выдает ошибку: полезная нагрузка недействительна - PullRequest
0 голосов
/ 29 октября 2019

Я использую специальную черту шифрования в моей модели журнала. Я не создавал этот код и смутно понимаю, как он работает, , но оригинальный код можно найти здесь, в этом сообщении на форуме Laracast.

Encryption.php

<?php
namespace App;

use Illuminate\Support\Facades\Crypt;
trait Encryptable
{
    public function getAttribute($key)
    {
        $value = parent::getAttribute($key);

        if (in_array($key, $this->encryptable)) {
            $value = Crypt::decrypt($value);
            return $value;
        }

        return $value;
    }

    public function setAttribute($key, $value)
    {
        if (in_array($key, $this->encryptable)) {
            $value = Crypt::encrypt($value);
        }

        return parent::setAttribute($key, $value);
    }
}

Journal.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Journal extends Model
{
    use Encryptable;

    protected $encryptable = [
        'content'
    ];
    protected $fillable = ['content','user_id'];

}

У меня две проблемы:

  1. Позвонить нафункция-член toRfc822String () в null (Просмотр: /Applications/MAMP/htdocs/thought-records/resources/views/journal/index.blade.php)

  2. КогдаЯ удаляю toRfc822String() из моего блейд-файла, он выдает эту ошибку: Полезная нагрузка недействительна.

Вот index.blade.php

<div class="card-body">
    @if($entries->isEmpty())
        <p>There is nothing here!</p>
    @else
        @foreach($entries as $entry)
            <a href="/entry/{{$entry->id}}"><h3>{{ $entry->created_at }}</h3></a>
            <div v-html="markdown('{{ htmlentities($entry->content) }}')"> </div>
            <hr>
        @endforeach
    @endif
</div>

1 Ответ

1 голос
/ 29 октября 2019

Метод getAttribute должен что-то возвращать. Ваш метод возвращает void. Из-за этого каждый атрибут, к которому вы пытаетесь получить доступ через динамическое свойство $model->attribute, будет null.

...