cre*_*hie 15 symfony fosuserbundle
我从Symfony 4开始,我想通过以下链接安装FosUserBundle:https://symfony.com/doc/master/bundles/FOSUserBundle/index.html
第一:
我的问题是我不知道在哪里找到"app/config/config.yml"文件来取消注释翻译并配置:
fos_user:
db_driver: orm # other valid values are 'mongodb' and 'couchdb'
firewall_name: main
user_class: AppBundle\Entity\User
from_email:
address: "%mailer_user%"
sender_name: "%mailer_user%"
Run Code Online (Sandbox Code Playgroud)
第二:
我想我必须在"config/packages /"目录中创建security.yml文件,是吗?
第三:
并在哪个文件中添加路由?
请问你能帮帮我吗 ?:)
小智 18
我已经解决了这个问题:
使用composer下载FOSUserBundle:
作曲家需要friendsofsymfony/user-bundle"~2.0"
在安装结束时,您将收到以下错误消息:
必须配置路径"fos_user"中的子节点"db_driver".
Run Code Online (Sandbox Code Playgroud)<?php //src/Entity/User.php namespace App\Entity; use FOS\UserBundle\Model\User as BaseUser; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity * @ORM\Table(name="fos_user") */ class User extends BaseUser { /** * @ORM\Id * @ORM\Column(type="integer") * @ORM\GeneratedValue(strategy="AUTO") */ protected $id; public function __construct() { parent::__construct(); // your own logic } }
Run Code Online (Sandbox Code Playgroud)security: encoders: FOS\UserBundle\Model\UserInterface: bcrypt role_hierarchy: ROLE_ADMIN: ROLE_USER ROLE_SUPER_ADMIN: ROLE_ADMIN # https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers providers: fos_userbundle: id: fos_user.user_provider.username firewalls: dev: pattern: ^/(_(profiler|wdt)|css|images|js)/ security: false main: pattern: ^/ form_login: provider: fos_userbundle csrf_token_generator: security.csrf.token_manager logout: true anonymous: true # Easy way to control access for large sections of your site # Note: Only the *first* access control that matches will be used access_control: - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/admin/, role: ROLE_ADMIN }
Run Code Online (Sandbox Code Playgroud)fos_user: db_driver: orm # other valid values are 'mongodb' and 'couchdb' firewall_name: main user_class: App\Entity\User from_email: address: "vincent@vfac.fr" sender_name: "vincent@vfac.fr"
更新config/packages/framework.yaml以添加模板配置
Run Code Online (Sandbox Code Playgroud)framework: templating: engines: ['twig', 'php']
Run Code Online (Sandbox Code Playgroud)fos_user: resource: "@FOSUserBundle/Resources/config/routing/all.xml"
php bin/console doctrine:database:create
使用User类实体中的信息更新架构
php bin/console doctrine:schema:update --force
此时,所有安装和配置都在Symfony 4中使用FOSUserBundle.运行以下命令检查是否一切正常
作曲家更新
如果您没有任何错误消息,可以测试!您可以运行Web服务器来测试您的应用程序
php bin/console server:启动
所有的教程在这里: https://vfac.fr/blog/how-install-fosuserbundle-with-symfony-4
Sea*_*ami 14
这是我发现的解决方案.
第一:
app/config/config.yml
不再存在而是已将配置移动到配置文件夹.对于FOS用户捆绑包的正确位置:/config/packages/fos_user.yaml
.如前所述,使用dev-master版本的FOSUserBundle,它支持4(仍然有一些正在进行的工作,但足够好).
第二:
你是对的,一个简单的解决方案是做一个composer require security
,配方将为你处理.
https://symfony.com/doc/current/security.html了解更多信息.
第三:
默认的FOS用户包路由:
fos_user:
resource: "@FOSUserBundle/Resources/config/routing/all.xml"
有关FOS路由的更多信息(步骤6)非常有用 https://symfony.com/doc/master/bundles/FOSUserBundle/index.html
另外,我建议在symfony路由文档中查看yaml示例.在配置与FOS用户包相关的路由时,可能会使事情更加清晰. https://symfony.com/doc/current/routing.html
好吧我有同样的问题,它应该是第一个:因为@sean Baharmi说你应该创建/config/packages/fos_user.yaml和这样的inter配置
fos_user:
db_driver: orm
firewall_name: main
user_class: App\Entity\Users
from_email:
address: "hello@youmail.com"
sender_name: "Sender Name"
Run Code Online (Sandbox Code Playgroud)
然后在framework.yaml中你应该输入以下因为FOSUserBundle
依赖
templating:
engines: ['twig', 'php']
Run Code Online (Sandbox Code Playgroud)
也用于在/config/rourtes/routes.yaml add中添加路由
fos_user:
resource: "@FOSUserBundle/Resources/config/routing/all.xml"
Run Code Online (Sandbox Code Playgroud)
然后就可以开始工作了
希望对你有用