Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 创建和访问自定义模块';Prestashop 1.7.5中的s休息路线_Php_Symfony_Composer Php_Prestashop_Prestashop 1.7 - Fatal编程技术网

Php 创建和访问自定义模块';Prestashop 1.7.5中的s休息路线

Php 创建和访问自定义模块';Prestashop 1.7.5中的s休息路线,php,symfony,composer-php,prestashop,prestashop-1.7,Php,Symfony,Composer Php,Prestashop,Prestashop 1.7,我正在尝试在Prestashop 1.7.5模块中创建自定义控制器 我创建了一个自定义控制器: # /var/www/html/modules/Profit/src/controller/ProductProfitController.php namespace Profit\Controller; use PrestaShopBundle\Controller\Admin\FrameworkBundleAdminController; use Symfony\Component\HttpF

我正在尝试在Prestashop 1.7.5模块中创建自定义控制器

我创建了一个自定义控制器:

# /var/www/html/modules/Profit/src/controller/ProductProfitController.php

namespace Profit\Controller;

use PrestaShopBundle\Controller\Admin\FrameworkBundleAdminController;
use Symfony\Component\HttpFoundation\JsonResponse;

class ProductProfitController extends FrameworkBundleAdminController {

    public function test() {
        return JsonResponse();
    }
}
# /var/www/html/modules/Profit/composer.json

{
    "name": "company/profit",
    "description": "Moduł opłacalności",
    "authors": [
        {
            "name": "Name",
            "email": "Email"
        }
    ],
    "require": {
        "php": ">=5.6.0"
    },
    "autoload": {
        "psr-4": {            
            "Profit\\Controller\\": "src/controller/"
        },
        "classmap": [
            "Profit.php",
            "src/"
        ],
        "exclude-from-classmap": []
    },
    "config": {
        "preferred-install": "dist",
        "prepend-autoloader": false
    },
    "type": "prestashop-module",
    "author": "Name",
    "license": ""
}
localhost:8001/admin-dev/Profit/price-cut
localhost:8001/modules/Profit/price-cut
localhost:8001/modules/Profit/Profit/price-cut
localhost:8001/Profit/price-cut
我用我的
composer.json
文件加载了这个类:

# /var/www/html/modules/Profit/src/controller/ProductProfitController.php

namespace Profit\Controller;

use PrestaShopBundle\Controller\Admin\FrameworkBundleAdminController;
use Symfony\Component\HttpFoundation\JsonResponse;

class ProductProfitController extends FrameworkBundleAdminController {

    public function test() {
        return JsonResponse();
    }
}
# /var/www/html/modules/Profit/composer.json

{
    "name": "company/profit",
    "description": "Moduł opłacalności",
    "authors": [
        {
            "name": "Name",
            "email": "Email"
        }
    ],
    "require": {
        "php": ">=5.6.0"
    },
    "autoload": {
        "psr-4": {            
            "Profit\\Controller\\": "src/controller/"
        },
        "classmap": [
            "Profit.php",
            "src/"
        ],
        "exclude-from-classmap": []
    },
    "config": {
        "preferred-install": "dist",
        "prepend-autoloader": false
    },
    "type": "prestashop-module",
    "author": "Name",
    "license": ""
}
localhost:8001/admin-dev/Profit/price-cut
localhost:8001/modules/Profit/price-cut
localhost:8001/modules/Profit/Profit/price-cut
localhost:8001/Profit/price-cut
我在模块的
路由
文件夹中添加了一条路由

# /var/www/html/modules/Profit/config/routes.yml

update_price_cut:
    path: Profit/price-cut
    methods: [GET]
    defaults:
      _controller: 'Profit\Controller\ProductProfitController::test'
但我不知道如何进入这条路线。我试过:

# /var/www/html/modules/Profit/src/controller/ProductProfitController.php

namespace Profit\Controller;

use PrestaShopBundle\Controller\Admin\FrameworkBundleAdminController;
use Symfony\Component\HttpFoundation\JsonResponse;

class ProductProfitController extends FrameworkBundleAdminController {

    public function test() {
        return JsonResponse();
    }
}
# /var/www/html/modules/Profit/composer.json

{
    "name": "company/profit",
    "description": "Moduł opłacalności",
    "authors": [
        {
            "name": "Name",
            "email": "Email"
        }
    ],
    "require": {
        "php": ">=5.6.0"
    },
    "autoload": {
        "psr-4": {            
            "Profit\\Controller\\": "src/controller/"
        },
        "classmap": [
            "Profit.php",
            "src/"
        ],
        "exclude-from-classmap": []
    },
    "config": {
        "preferred-install": "dist",
        "prepend-autoloader": false
    },
    "type": "prestashop-module",
    "author": "Name",
    "license": ""
}
localhost:8001/admin-dev/Profit/price-cut
localhost:8001/modules/Profit/price-cut
localhost:8001/modules/Profit/Profit/price-cut
localhost:8001/Profit/price-cut
这些都不管用。每一个都会导致404错误

这是创建模块自定义控制器路由的正确方法吗?我怎样才能解决这个问题


注意:此控制器应为后台控制器。我想使用它从默认的PrestaShop产品列表中更新产品的详细信息。

在管理控制器中尝试$this->generateUrl('update\u price\u cut')。它将生成到控制器的正确路线。或者,如果您在其他地方需要它,您可以创建自己的服务并使用它。您可以找到更多信息