首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EasyAdmin在向实体添加新条目时自动设置user_id

EasyAdmin在向实体添加新条目时自动设置user_id
EN

Stack Overflow用户
提问于 2022-04-13 19:28:57
回答 1查看 353关注 0票数 -1

我使用easyadmin与我的在线学习网站项目为学校。教师可以添加编队,与编队相连的部分,以及属于各科的课程。我为每个用户设置了三个cruds,并进行了查询,这样登录的用户只能看到他们创建的内容。

问题是在添加新条目时,easyadmin没有在数据库中设置已登录的user_id,并且我得到以下错误:执行查询时发生异常: SQLSTATE23000:完整性约束违反: 1048列'user_id‘不能为null

我了解它的来源,您不能在没有user_id的情况下将条目添加到数据库中,因为它不是空的,但我似乎找不到可以设置easyadmin的位置,因此在添加新条目时,它总是会传递user_id。您能在某个地方编辑add操作吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-13 20:21:27

如下面的文档示例代码所示,您需要在您的AbstractCrudController::createEntity方法中手动设置实体上的用户(当前登录用户由$this->getUser()返回)。

代码语言:javascript
复制
//    src: https://symfony.com/bundles/EasyAdminBundle/current/crud.html#creating-persisting-and-deleting-entities
// copied: 2022-04-13

namespace App\Controller\Admin;

use App\Entity\Product;
use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractCrudController;

class ProductCrudController extends AbstractCrudController
{
    public static function getEntityFqcn(): string
    {
        return Product::class;
    }

    public function createEntity(string $entityFqcn)
    {
        $product = new Product();
        $product->createdBy($this->getUser());

        return $product;
    }

    // ...
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71862929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档