Quantcast
Channel: Active questions tagged symfony4 - Stack Overflow
Viewing all 3925 articles
Browse latest View live

Create specific entities/data model only for search results

$
0
0

I am working on a project, a Angular 8 single application which communicates with an Symfony 4 API. On my API I have defined a data model with simple resources : order, order-line, product, customer, etc. with their own entites/repositories/controllers/routes classes : /api/order, /api/product, /api/customer, etc. My logical data model is big and complex so when a specific resource is called (GET /api/order/125 for example), my API returns only the fields and the foreign keys (instead of returning the complete related entities fields).

On my Angular application, I have search pages with complex criterias on related entities so I have to make a lot of HTTP calls on the api. For example, if I want to search and display orders with criterias on products or customers, I have to make multiple calls to display the related data. Another problem is that I don't need all the data of a specific resource in the results display page. So I have performance problems and a code complexity on the angular app side...

Is it a good idea to create specific search entities on both side (API with specific repositories/entities/controllers/routes and Angular) in order to return only the needed data for my search/results pages ? I think it will simplify the code and improve the performance. But is it a "bad practice" ?

Thank you.


How do I suppress the warning "unable to find the application log" after running "symfony serve"?

$
0
0

With Symfony 4.3 and Symfony CLI v4.7.1, when I run:

symfony serve

I see the following warning in the output:

WARNING unable to find the application log

How do I solve the issue that raises this warning? Do I have to install the logger bundle?

Symfony 4/Doctrine 2 - fetching real object not the proxy

$
0
0

I have a following entity:

/**
 * @ORM\Entity(repositoryClass="App\Repository\CourseLevelRepository")
 */
class CourseLevel
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @var CourseLevel
     *
     * @ORM\ManyToOne(targetEntity="App\Entity\CourseLevel", fetch="EAGER")
     * @ORM\JoinColumn(nullable=true, referencedColumnName="id")
     */
    private $nextCourseLevel;   


    ...
}

As you can see it builds a tree structure so any record can point to it's parent by ManyToOne relation of $nextCourseLevel.

Then I fetch the list of elements with the query in repository:

class CourseLevelRepository extends ServiceEntityRepository
{
    public function __construct(ManagerRegistry $registry)
    {
        parent::__construct($registry, CourseLevel::class);
    }

    public function fetchFiltered(array $filters)
    {
        $builder = $this->createQueryBuilder('cl');
        $builder->setFirstResult(0);
        $builder->setMaxResults(10)
        $builder->orderBy('cl.name', 'asc');

        return $builder->getQuery()->getResult();
    }
}

Let's assume following set of data:

id | next_course_level
-------------------------
1  | 2
2  | null

For that I will receive following objects: - Object with id = 1, which is an object of App\Entity\CourseLevel (with the $nextCourseLevel set to object id = 2 which is a proxy) - Object with id = 2, which is a proxy object.

That's happen probably because of relation - object with id=1 points to id=2 as the parent.

But how can I force to fetch all data as the real objects, not the proxies? Putting fetch="EAGER" does not change anything :(

How to rebuild Symfony Encore assets?

$
0
0

I have installed the Symfony demo application (https://github.com/symfony/demo) and tried to play around with assets/encore. My understanding of encore is:

  1. You include js/css with
{{ encore_entry_link_tags('css/app') }}
{{ encore_entry_script_tags('js/app') }}
  1. You edit js/css within assets/js and assets/css
  2. You "rebuild" assets which then are stored in public/build/js and public/build/css

I changed some of the css and js code and am strugling with the rebuild part. I have tried

php bin/console assets:install

But after reloading the demo page, nothing changes.

How can I rebuild the assets?

Symfony Related Validation Or Validation Group

$
0
0

I have the following form elements

$builder->add('link_to', ChoiceType::class, [
    'label' => 'Link To *',
    'choices'  => [
        'Session' => 'session',
        'Category' => 'category',
        'External URL' => 'url'
    ]
]);

$builder->add('category', EntityType::class, [
    'label' => 'Category *',
    'class' => \App\Entity\Category::class,
    'choice_label' => 'translations[en].name'
]);

$builder->add('session', EntityType::class, [
    'label' => 'Session *',
    'class' => \App\Entity\Session::class,
    'choice_label' => 'translations[en].title'
]);

$builder->add('url', TextType::class, [
    'label' => 'External URL *'
]);

public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults([
        'attr' => ['novalidate' => 'novalidate'],
        'data_class' => \App\Entity\Banner::class
    ]);
}

I want to add NotBlank() validator to category, session or url field based on the value from link_to field, for example, if user has selected Session in link_to field then Session field must be mandatory and so on.

I tried with validation groups and I am getting confused, can someone help me with how to go about this with either validation group or some other approach.

Thanks.

Angular 8 And Symfony 4 File Upload With FormData Not Working

$
0
0

Having an issue here with Angular 8 and uploading a file with FormData and http.

Basic code is as follows in angular:

let formData = new FormData();
formData.append('file',theFile,theFile.name); // theFile being a File object in angular
formData.append('test','test');

this.http.post('url here',formData).subscribe((response: MyInterface)=>{

});

The request payload from this is :

------WebKitFormBoundaryULkkPkHW5oXAfLKW
Content-Disposition: form-data; name="file"; filename="DSC_0306.jpg"
Content-Type: image/jpeg


------WebKitFormBoundaryULkkPkHW5oXAfLKW
Content-Disposition: form-data; name="something"

test
------WebKitFormBoundaryULkkPkHW5oXAfLKW--

But i can't seem to read this data in symfony with :

$file = $request->files->get('file');

$file is just null, and $request->getContent() is also empty!

This isn't making any sense. Can someone help out please?

The request headers from angular as follows:

Accept: application/json
Accept-Encoding: gzip, deflate
Accept-Language: en-GB,en-US;q=0.9,en;q=0.8
Authorization: Basic
Connection: keep-alive
Content-Length: 1878870
Content-Type: application/json
Host: api.admireme.vip.local:8080
Origin: http://localhost:4200
Referer: http://localhost:4200/tester
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
X-AUTH-TOKEN: f54aac9ea375ac5bdf464a9e61e1ecff

Progressive loading of columns using AJAX in Symfony 4

$
0
0

I need to load columns one-by-one using AJAX so that intermediate results are showing up. I've tried to separate service to functions, but the request is still only one. I can show the code if need, but it's very big and clunky.

Session based authentication in api-platform

$
0
0

I am trying to setup session based authentication instead of JWT that I have currently in use, because I don´t want to store JWT token in local storage.

I have managed to authenticate myself using this guide https://symfony.com/doc/current/security/json_login_setup.html and get response data about the user.

But further requests to any endpoint I get 401 unauthorized.

This is my security yaml

security:
encoders:
    App\Entity\User:
        algorithm: bcrypt
providers:
    app_user_provider:
        entity:
            class: App\Entity\User
            property: email
firewalls:
    dev:
        pattern: ^/_(profiler|wdt)
        security: false
    api:
        pattern: ^/api/
        stateless: true
        anonymous: true
        provider: app_user_provider
        json_login:
            check_path: /api/login
            username_path: email
            password_path: password
            #success_handler: lexik_jwt_authentication.handler.authentication_success
            #failure_handler: lexik_jwt_authentication.handler.authentication_failure

        #guard:
        #   authenticators:
        #      - lexik_jwt_authentication.jwt_token_authenticator
    main:
        anonymous: true
access_control:
    - { path: ^/api/authentication_token,   roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/api/graphql,                roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/api/form/,                  roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/api/,                       roles: IS_AUTHENTICATED_FULLY }
    - { path: ^/,                           roles: IS_AUTHENTICATED_ANONYMOUSLY }

On the official api-platform documentation there is no word of using session based login which I find odd.

Thank you


Symfony install behind company firewall

$
0
0

My company is blocking access to github (I suppose to prevent source code from leaking). However, a dependency of symfony is "symfony/flex (v1.5.3)", and must connect to github.com to install successfully.

When I run composer install, I get the following message :

Installing symfony/flex (v1.5.3): Cloning 59b42aa1d3


  [RuntimeException]                                                                                                               
  Failed to clone https://github.com/symfony/flex.git via https, ssh, git protocols, aborting.

Is there any way I can't still use symfony withouth the access to github ?

Actually, to install composer dependencies I was able to use my company artifactory repositories, but I don't think they have it for symfony flex.

i want to select fields based on another field with symfony 4, so i want select all groupements based on one of secteurs

$
0
0

i want to select fields based on another field with symfony 4, so i want select all groupements based on one of secteurs

  ->add('secteurid',EntityType::class, [
                'label'=>'Nom du secteur :',
                'class'  => Secteurs::class,
            'choice_label' => 'secteurfr',
            'attr'=>[
                'class'=>'form-control',
            ] 
        ])
        ->add('groupementid',EntityType::class, [
            'label'=>'Nom groupement :',
            'class'  => Groupements::class,
            'choice_label' => 'nomgroupementfr',
            'attr'=>[
                'class'=>'form-control',
            ] 
        ])

many-to-many in sonata sf4 (PersistentCollection could not be converted to string)

$
0
0

In sonata admin with sf4, in a many-to-many relationship. I have this error: Catchable Fatal Error: Object of class Doctrine\ORM\PersistentCollection could not be converted to string

protected function configureFormFields(FormMapper $formMapper)
{
 $formMapper
            ->add('Landcrops', EntityType::class, [
                'class' => Landcrops::class,
                'choice_label' => 'lands',
                'expanded'  => true,
                'multiple'  => true,
            ])
        ;
}

I created from the command line: bin console make:entity

What am I doing wrong?

thanks a lot

Upload file with VichUploader and ajax/axios

$
0
0

I am trying to set up a form to upload a file with VichUploader & axios/ajax.

The form I am sending looks like this on the console: the form on chrome debugger

I have set up vich uploader and GNP properly as the form works in non-ajax forms.

I have a simple file to upload with an Entity set like the following:

<?php

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\HttpFoundation\File\File;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use Vich\UploaderBundle\Mapping\Annotation as Vich;

/**
 * Class Logo
 *
 * @ORM\Table(name="logos")
 * @ORM\Entity()
 * @Vich\Uploadable()
 */
class Logo
{
    /**
     * @var int
     *
     * @ORM\Column(type="integer", name="id")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(type="string", length=255, nullable=true)
     */
    private $logoName;

    /**
     * NOTE: This is not a mapped field of entity metadata, just a simple property.
     *
     * @var File
     *
     * @Vich\UploadableField(mapping="logo", fileNameProperty="logoName", size="logoSize")
     */
    private $logoFile;

    /**
     * @ORM\Column(type="integer", nullable=true)
     *
     * @var integer
     */
    private $logoSize;

    /**
     * @ORM\Column(type="datetime", nullable=true)
     */
    private $updatedAt;

The getters and setters are exactly like on the documentation

My FormType is also very basic:

<?php

// src/Form/UserType.php
namespace App\Form;

use App\Entity\Logo;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;

use Symfony\Component\OptionsResolver\OptionsResolver;
use Vich\UploaderBundle\Form\Type\VichFileType;

class LogoType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        // Remember username is email
        $builder
            ->add('logoFile', VichFileType::class, [
                'label'         => false,
                'required'      => false,
                'allow_delete'  => false,
                'download_uri'  => true,
                'download_label' => true,
                'download_link' => true,
            ])
        ;
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => Logo::class,
            'csrf_protection' => false,
        ));
    }
}

And so is my controller:

    /**
     * Update a Logo for the Startup
     *
     * @Rest\Post("/logo")
     *
     * @param Request $request
     * @param UserRepository $userRepository
     *
     * @return Response
     */
    public function updateLogo(Request $request, UserRepository $userRepository): Response
    {
        $success = false;

        // Retrieve the user
        $user = $this->getUser();

//        var_dump($image);
        $startup = $user->getStartup();


        $logo = new Logo();
        $form = $this->createForm(LogoType::class, $logo);

        // Handle Submit (will only happen on POST)
        $form->submit($request->request->get('upload'));
        if ($form->isSubmitted() && $form->isValid()) {

            //Initialize EntityManager to update the user
            $entityManager = $this->getDoctrine()->getManager();

            $logo = $form->getData();
            $startup->setLogo($logo);

            try {
                $entityManager->persist($startup);
                $entityManager->flush();
            } catch (ORMException $e) {
                throw new HttpException(500, "Couldn't update your profile. Try again.");
            }

            $success = true;
        }

        $view = $this->view($success, 200);

        return $this->handleView($view);
    }

When doing this, it does create a new object Logo but all the fields are NULL and no file is uploaded to AWS S3. Note that if I pass logoFile instead of upload[logoFile] the form doesn't validate. I guess passing upload[logoFile] is the right thing to do.

Not sure what is happening under the hood. What Am I missing?

Thank you very much.

EDIT: Here is my ajax submission code - Handled with Axios on React:

const formData = new FormData();
    formData.append('upload[logoFile]', e.files[0]);

    axios.post('/startups/logo', formData, {
      headers: {
        'Content-Type': 'multipart/form-data',
      },
    })

EDIT2: Doing a dd($request->files) gives me the following:

StartupsController.php on line 152:
FileBag^ {#73
  #parameters: array:1 [
    "upload" => array:1 [
      "logoFile" => UploadedFile^ {#63
        -test: false
        -originalName: "49138054_2423211744374313_3487352288589119488_n.jpg"
        -mimeType: "image/jpeg"
        -error: 0
        path: "/private/var/folders/wl/n382y8xs021dnbz3jhbklsnm0000gn/T"
        filename: "phpWomX0H"
        basename: "phpWomX0H"
        pathname: "/private/var/folders/wl/n382y8xs021dnbz3jhbklsnm0000gn/T/phpWomX0H"
        extension: ""
        realPath: "/private/var/folders/wl/n382y8xs021dnbz3jhbklsnm0000gn/T/phpWomX0H"
        aTime: 2019-12-11 22:02:51
        mTime: 2019-12-11 22:02:51
        cTime: 2019-12-11 22:02:51
        inode: 8664431786
        size: 106292
        perms: 0100600
        owner: 501
        group: 20
        type: "file"
        writable: true
        readable: true
        executable: false
        file: true
        dir: false
        link: false
      }
    ]
  ]
}

EntityType,I fill two select, I will choose qan in the first select the valaur of the second select change [closed]

$
0
0

as my title indicates I have in my form a field to select a sector, and after having selected one of the grouping. from a sector you chose in the first time

  ->add('secteurid',EntityType::class, [
                'label'=>'Nom du secteur :',
                'class'  => Secteurs::class,
            'choice_label' => 'secteurfr',
            'attr'=>[
                'class'=>'form-control',
            ] 
        ])
        ->add('groupementid',EntityType::class, [
            'label'=>'Nom groupement :',
            'class'  => Groupements::class,
            'choice_label' => 'nomgroupementfr',
            'attr'=>[
                'class'=>'form-control',
            ] 
        ])

Symfony / Doctrine 2.x - Show form EntityType::class list of users - save @OneToMany - error

$
0
0

Using Symfony 4.1, Doctrine 2.x, I have three Entities. One Subscription can have Many Identities assigned (aka User accounts). When saving which Identities belong to the currently visible Subscription on screen (via standard Symfony form), it fails.

Identity.php

class Identity implements UserInterface, \Serializable, InteractiveLoginUserInterface
{
    /**
     * @var int
     *
     * @ORM\Column(type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string|null
     *
     * @ORM\Column(type="string", length=255, unique=true)
     * @Assert\NotBlank()
     * @Assert\Email()
     * @Assert\Length(max="255")
     */
    public $username;

Subscription.php

class Subscription
{
    /**
     * @ORM\Column(type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    public $id;
    /**
     * @var bool
     * @ORM\Column(type="boolean")
     */

    /**
     * @var Collection
     * @ORM\OneToMany(targetEntity="SubscriptionIdentity", mappedBy="subscription", fetch="EAGER")
     */
    public $identities;

SubscriptionIdentity.php

class SubscriptionIdentity
{
    /**
     * @var int
     *
     * @ORM\Column(type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @ORM\ManyToOne(targetEntity="Subscription", inversedBy="identities")
     * @ORM\JoinColumn(name="subscription_id", referencedColumnName="id", nullable=false)
     */
    public $subscription;


    /**
     * @ORM\ManyToOne(targetEntity="Identity", inversedBy="subscriptions")
     * @ORM\JoinColumn(name="identity_id", referencedColumnName="id", nullable=true)
     */
    public $identity;

I have the following Form

class GeneralSettingsType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options): void
    {
        $builder
            ....<snip>....
            ->add('identities', EntityType::class, [
                'label' => 'Who can view this subscription',
                // looks for choices from this entity
                'class' => Identity::class,
                //'placeholder' => 'Choose an option',
                // uses the User.username property as the visible option string
                'choice_label' => 'username',
                'multiple' => true,

This works for for displaying a list box of options for the end user to select from:

EntityType form field

When I save my form I get this issue:

ORMInvalidArgumentException
HTTP 500 Internal Server Error
Expected value of type "App\Entity\**SubscriptionIdentity**" for association field
 "App\Entity\Subscription#$identities", got "App\Entity\Identity" instead.

Please help! Symfony / Doctrine documentation is not overly helpful in this case. Thanks.

How to alter the already created table?

$
0
0

I used following command to create a table.

php bin/console doctrine:schema:update --force

Now for some reason, I have to make some changes to the entity.

After making some changes to the entity class when I try to run this command again. I am getting error

Fatal error: Cannot declare class App\Entity\BlogPost, because the name is already in use in

I delete the already created table from the db manually and try to run but I am still getting the same error.


Authentication problem $user must be an instanceof UserInterface

$
0
0

I'm using Symfony 4.4 and have a weird problem with user authentication. Unfortunately, I myself cannot reproduce the problem, but I can see in the logs that it occurs with a small number of my users. The following error message occurs:

$user must be an instanceof UserInterface, an object implementing a __toString method, or a primitive string

Stacktrace:

{
    "class": "InvalidArgumentException",
    "message": "$user must be an instanceof UserInterface, an object implementing a __toString method, or a primitive string.",
    "code": 0,
    "file": "/var/www/vendor/symfony/security/Core/Authentication/Token/AbstractToken.php:95",
    "trace": [
        "/var/www/vendor/symfony/security/Http/Firewall/ContextListener.php:224",
        "/var/www/vendor/symfony/security/Http/Firewall/ContextListener.php:140",
        "/var/www/vendor/symfony/security/Http/Firewall/AbstractListener.php:27",
        "/var/www/vendor/symfony/security/Http/Firewall.php:139",
        "/var/www/vendor/symfony/security/Http/Firewall.php:129",
        "/var/www/vendor/symfony/security/Http/Firewall.php:97",
        "/var/www/vendor/symfony/event-dispatcher/EventDispatcher.php:304",
        "/var/www/vendor/symfony/event-dispatcher/EventDispatcher.php:264",
        "/var/www/vendor/symfony/event-dispatcher/EventDispatcher.php:239",
        "/var/www/vendor/symfony/event-dispatcher/EventDispatcher.php:73",
        "/var/www/vendor/symfony/http-kernel/HttpKernel.php:122",
        "/var/www/vendor/symfony/http-kernel/HttpKernel.php:68",
        "/var/www/vendor/symfony/http-kernel/Kernel.php:201",
        "/var/www/public/index.php:34"
    ]
}

I suspect that the token may not be renewable, the message mostly appears in the internal area. Sometimes it also appeared when the website was first accessed, where the user was probably not yet logged in.

My firewalls look like this:

    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
        main:
            pattern: ^/
            anonymous: ~
            form_login:
                login_path: login
                check_path: login_check
                username_parameter: login[username]
                password_parameter: login[password]
                csrf_token_generator: security.csrf.token_manager
            json_login:
                check_path: json_login_check
            provider: database
            logout:
                path: /logout
                target: /
            guard:
                provider: open_id
                authenticators:
                    - App\Path\To\OpenIdGuard

login_check is the default login action and json_login_check the login action via xhr. Additionally there are two user providers, the default one (database) and another one for open id (open_id).

The providers look like this:

    providers:
        database:
            entity:
                class: App\Entity\User
                property: email
        open_id:
            id: App\Path\To\Provider

User entity (simplified):

class User implements \Serializable, UserInterface, EncoderAwareInterface
{
    public function __toString(): string
    {
        return $this->getEmail();
    }

    public function __construct()
    {
        $this->salt = base_convert(sha1(uniqid(''.mt_rand(), true)), 16, 36);
        $this->setEnabled(false);
        $this->roles[] = 'ROLE_USER';
    }

    public function eraseCredentials(): void
    {
    }

    public function serialize(): string
    {
        return serialize(array(
            $this->id,
            $this->email,
            $this->password,
            $this->salt,
        ));
    }

    public function unserialize($serialized): void
    {
        list(
            $this->id,
            $this->email,
            $this->password,
            $this->salt
        ) = unserialize($serialized);
    }
}

Both providers (database and open_id) use the same User entity.

The problem occurs as I said only very rarely, in most cases, everything works fine.

i have two EntityType when the user select one of this secteur entity i want to show all Groupements belong to it from the other Entity

$
0
0

i have two EntityType when the user select one of this secteur entity i want to show all Groupements belong to it from the other Entity

->add('secteurid',EntityType::class, [
            'label'=>'Nom du secteur :',
             'class'  => Secteurs::class,
            'choice_label' => 'secteurfr',
            'attr'=>[
                'class'=>'form-control',
            ] 
        ])

        ->add('groupementid',EntityType::class, [
                     'label'=>'Nom groupement :',
                      'class'  => Groupements::class,
            'choice_label' => 'nomgroupementfr',
            'attr'=>[
                'class'=>'form-control',
            ] 
        ])

Doctrine OneToMany - How to get number of entries

$
0
0

I have an entity which contains a OneToMany Relation.

/**
* @ORM\OneToMany(targetEntity="App\Entity\BookingItem", mappedBy="bookingGroup", orphanRemoval=true)
*/
private $bookingItems;

I create a custom request for a list with all entries:

// /**
//  * @return BookingGroup[] Returns an array of BookingGroup objects
//  */
public function findByWarehouse($value)
{
    return $this->createQueryBuilder('b')
        ->andWhere('b.warehouse = :val')
        ->setParameter('val', $value)
        ->orderBy('b.time', 'DESC')
        ->getQuery()
        ->getResult()
    ;
}

In this list I want to show how many entries $bookingItems have. In the moment I work on the on the "Twig-level" with

{{ booking.bookingItems|length }}

but this create many SQL Queries. How can I add the count of $bookingItems in the request?

sub entityType on symfony 4 formtype

$
0
0

I have tow form Field of EntityType (entitytype 1 and entitytype 2), i want to fill the second field(entitytype 2) based on the first field (entitytype1) selected value , it's kind of sub entityType.

curl options in symfony http-client

$
0
0

I'm refactoring some clients in a Symfony 4.3 project, to use Symfony http-client instead of Guzzle http-client. I'm stuck on a client that uses this option in its constructor:

'curl.options' => [CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_2]

I've been reading the docs of Symfony http/client but I can't find any mention of curl options. Does someone know something about how to set this option? I'm configuring headers and other important options in framework.yaml for each client.

Viewing all 3925 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>