我使用easyadmin与我的在线学习网站项目为学校。教师可以添加编队,与编队相连的部分,以及属于各科的课程。我为每个用户设置了三个cruds,并进行了查询,这样登录的用户只能看到他们创建的内容。
问题是在添加新条目时,easyadmin没有在数据库中设置已登录的user_id,并且我得到以下错误:执行查询时发生异常: SQLSTATE23000:完整性约束违反: 1048列'user_id‘不能为null
我了解它的来源,您不能在没有user_id的情况下将条目添加到数据库中,因为它不是空的,但我似乎找不到可以设置easyadmin的位置,因此在添加新条目时,它总是会传递user_id。您能在某个地方编辑add操作吗?
谢谢!
发布于 2022-04-13 20:21:27
如下面的文档示例代码所示,您需要在您的AbstractCrudController::createEntity方法中手动设置实体上的用户(当前登录用户由$this->getUser()返回)。
// 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;
}
// ...
}https://stackoverflow.com/questions/71862929
复制相似问题