laravel9 定义修改器失败!

1. 运行环境

PHP : 8.1.13
laravel : 9.33.0
laravel-admin: 1.8.19

模型

namespace App\Models;

use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Support\Facades\Storage;

class Activity extends Model
{
    use HasFactory;

    protected function cover(): Attribute
    {
        return Attribute::make(
            get: fn($value) => $value,
            set: fn($value) => Storage::disk('oss')->url($value),
        )->shouldCache();
    }
}

laravel-admin后台访问列表报错

[2023-03-20 16:33:05] local.ERROR: Call to undefined method App\Models\BlindBox::cover() {"userId":1,"exception":"[object] (BadMethodCallException(code: 0): Call to undefined method App\\Models\\BlindBox::cover() at /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php:71)
[stacktrace]
#0 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php(36): Illuminate\\Database\\Eloquent\\Model::throwBadMethodCallException()
#1 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(2230): Illuminate\\Database\\Eloquent\\Model->forwardCallTo()
#2 /www/wwwroot/PostringsPlus/vendor/encore/laravel-admin/src/Grid.php(752): Illuminate\\Database\\Eloquent\\Model->__call()
#3 /www/wwwroot/PostringsPlus/vendor/encore/laravel-admin/src/Grid.php(804): Encore\\Admin\\Grid->handleRelationColumn()
#4 /www/wwwroot/PostringsPlus/vendor/encore/laravel-admin/src/Grid.php(271): Encore\\Admin\\Grid->__call()
#5 /www/wwwroot/PostringsPlus/app/Admin/Controllers/BlindBoxController.php(39): Encore\\Admin\\Grid->column()
#6 /www/wwwroot/PostringsPlus/vendor/encore/laravel-admin/src/Controllers/AdminController.php(53): App\\Admin\\Controllers\\BlindBoxController->grid()
#7 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): Encore\\Admin\\Controllers\\AdminController->index()
#8 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(43): Illuminate\\Routing\\Controller->callAction()
#9 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Routing/Route.php(259): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#10 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Routing/Route.php(204): Illuminate\\Routing\\Route->runController()
#11 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Routing/Router.php(725): Illuminate\\Routing\\Route->run()
#12 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}()
#13 /www/wwwroot/PostringsPlus/vendor/encore/laravel-admin/src/Middleware/Permission.php(46): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#14 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Encore\\Admin\\Middleware\\Permission->handle()
#15 /www/wwwroot/PostringsPlus/vendor/encore/laravel-admin/src/Middleware/Bootstrap.php(15): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#16 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Encore\\Admin\\Middleware\\Bootstrap->handle()
#17 /www/wwwroot/PostringsPlus/vendor/encore/laravel-admin/src/Middleware/LogOperation.php(38): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#18 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Encore\\Admin\\Middleware\\LogOperation->handle()
#19 /www/wwwroot/PostringsPlus/vendor/encore/laravel-admin/src/Middleware/Pjax.php(24): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#20 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Encore\\Admin\\Middleware\\Pjax->handle()
#21 /www/wwwroot/PostringsPlus/vendor/encore/laravel-admin/src/Middleware/Authenticate.php(28): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#22 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Encore\\Admin\\Middleware\\Authenticate->handle()
#23 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#24 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#25 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#26 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle()
#27 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#28 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle()
#29 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#30 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest()
#31 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Session\\Middleware\\StartSession->handle()
#32 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#33 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle()
#34 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#35 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle()
#36 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#37 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Routing/Router.php(726): Illuminate\\Pipeline\\Pipeline->then()
#38 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Routing/Router.php(703): Illuminate\\Routing\\Router->runRouteWithinStack()
#39 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Routing/Router.php(667): Illuminate\\Routing\\Router->runRoute()
#40 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Routing/Router.php(656): Illuminate\\Routing\\Router->dispatchToRoute()
#41 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(190): Illuminate\\Routing\\Router->dispatch()
#42 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#43 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#44 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#45 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#46 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#47 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#48 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#49 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#50 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle()
#51 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#52 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#53 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#54 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Http\\Middleware\\HandleCors->handle()
#55 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#56 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#57 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#58 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(165): Illuminate\\Pipeline\\Pipeline->then()
#59 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(134): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#60 /www/wwwroot/PostringsPlus/public/index.php(52): Illuminate\\Foundation\\Http\\Kernel->handle()
#61 {main}
"} 

laravel-admin后台编辑数据

[2023-03-20 16:33:06] local.ERROR: Call to undefined relationship [cover] on model [App\Models\BlindBox]. {"userId":1,"exception":"[object] (Illuminate\\Database\\Eloquent\\RelationNotFoundException(code: 0): Call to undefined relationship [cover] on model [App\\Models\\BlindBox]. at /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Database/Eloquent/RelationNotFoundException.php:35)
[stacktrace]
#0 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(766): Illuminate\\Database\\Eloquent\\RelationNotFoundException::make()
#1 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Relation.php(104): Illuminate\\Database\\Eloquent\\Builder->Illuminate\\Database\\Eloquent\\{closure}()
#2 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(768): Illuminate\\Database\\Eloquent\\Relations\\Relation::noConstraints()
#3 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(736): Illuminate\\Database\\Eloquent\\Builder->getRelation()
#4 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(716): Illuminate\\Database\\Eloquent\\Builder->eagerLoadRelation()
#5 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(684): Illuminate\\Database\\Eloquent\\Builder->eagerLoadRelations()
#6 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php(296): Illuminate\\Database\\Eloquent\\Builder->get()
#7 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(431): Illuminate\\Database\\Eloquent\\Builder->first()
#8 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(463): Illuminate\\Database\\Eloquent\\Builder->find()
#9 /www/wwwroot/PostringsPlus/vendor/encore/laravel-admin/src/Form.php(1085): Illuminate\\Database\\Eloquent\\Builder->findOrFail()
#10 /www/wwwroot/PostringsPlus/vendor/encore/laravel-admin/src/Form.php(197): Encore\\Admin\\Form->setFieldValue()
#11 /www/wwwroot/PostringsPlus/vendor/encore/laravel-admin/src/Controllers/AdminController.php(85): Encore\\Admin\\Form->edit()
#12 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): Encore\\Admin\\Controllers\\AdminController->edit()
#13 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(43): Illuminate\\Routing\\Controller->callAction()
#14 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Routing/Route.php(259): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#15 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Routing/Route.php(204): Illuminate\\Routing\\Route->runController()
#16 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Routing/Router.php(725): Illuminate\\Routing\\Route->run()
#17 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}()
#18 /www/wwwroot/PostringsPlus/vendor/encore/laravel-admin/src/Middleware/Permission.php(46): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#19 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Encore\\Admin\\Middleware\\Permission->handle()
#20 /www/wwwroot/PostringsPlus/vendor/encore/laravel-admin/src/Middleware/Bootstrap.php(15): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#21 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Encore\\Admin\\Middleware\\Bootstrap->handle()
#22 /www/wwwroot/PostringsPlus/vendor/encore/laravel-admin/src/Middleware/LogOperation.php(38): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#23 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Encore\\Admin\\Middleware\\LogOperation->handle()
#24 /www/wwwroot/PostringsPlus/vendor/encore/laravel-admin/src/Middleware/Pjax.php(24): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#25 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Encore\\Admin\\Middleware\\Pjax->handle()
#26 /www/wwwroot/PostringsPlus/vendor/encore/laravel-admin/src/Middleware/Authenticate.php(28): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#27 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Encore\\Admin\\Middleware\\Authenticate->handle()
#28 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#29 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#30 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#31 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle()
#32 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#33 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle()
#34 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#35 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest()
#36 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Session\\Middleware\\StartSession->handle()
#37 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#38 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle()
#39 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#40 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle()
#41 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#42 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Routing/Router.php(726): Illuminate\\Pipeline\\Pipeline->then()
#43 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Routing/Router.php(703): Illuminate\\Routing\\Router->runRouteWithinStack()
#44 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Routing/Router.php(667): Illuminate\\Routing\\Router->runRoute()
#45 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Routing/Router.php(656): Illuminate\\Routing\\Router->dispatchToRoute()
#46 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(190): Illuminate\\Routing\\Router->dispatch()
#47 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#48 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#49 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#50 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#51 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#52 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#53 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#54 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#55 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle()
#56 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#57 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#58 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#59 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Http\\Middleware\\HandleCors->handle()
#60 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#61 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#62 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#63 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(165): Illuminate\\Pipeline\\Pipeline->then()
#64 /www/wwwroot/PostringsPlus/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(134): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#65 /www/wwwroot/PostringsPlus/public/index.php(52): Illuminate\\Foundation\\Http\\Kernel->handle()
#66 {main}
"} 

我应该怎么加访问器和修改器?

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

看了下 laravel-admin master 分支的源代码,在 Grid.php_call 调用handleGetMutatorColumn, 而 handleGetMutatorColumn 的代码如下:

    /**
     * Handle get mutator column for grid.
     *
     * @param string $method
     * @param string $label
     *
     * @return bool|Column
     */
    protected function handleGetMutatorColumn($method, $label)
    {
        if ($this->model()->eloquent()->hasGetMutator($method)) {
            return $this->addColumn($method, $label);
        }

        return false;
    }

这里调用了 hasGetMutator 这个函数只能获取 getXxxxAttribute 这种访问修改器,并没有兼容到新版的 hasAttributeMutator,所以导致了在 __call 方法中最终走到了 handleRelationColumn 这个函数,也就是说,他把你这个 cover 字段当成了一个模型关联关系!

1年前 评论
GeorgeKing (作者) 1年前
讨论数量: 6

或许是 laravel-admin 没有适配,提供完整的报错信息和 laravel-admin 版本。

1年前 评论
UpGod (楼主) 1年前

模型用错了吧,报错的是App\Models\BlindBox模型,你写方法的模型是App\Models\Activity

1年前 评论
UpGod (楼主) 1年前

看了下 laravel-admin master 分支的源代码,在 Grid.php_call 调用handleGetMutatorColumn, 而 handleGetMutatorColumn 的代码如下:

    /**
     * Handle get mutator column for grid.
     *
     * @param string $method
     * @param string $label
     *
     * @return bool|Column
     */
    protected function handleGetMutatorColumn($method, $label)
    {
        if ($this->model()->eloquent()->hasGetMutator($method)) {
            return $this->addColumn($method, $label);
        }

        return false;
    }

这里调用了 hasGetMutator 这个函数只能获取 getXxxxAttribute 这种访问修改器,并没有兼容到新版的 hasAttributeMutator,所以导致了在 __call 方法中最终走到了 handleRelationColumn 这个函数,也就是说,他把你这个 cover 字段当成了一个模型关联关系!

1年前 评论
GeorgeKing (作者) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!