小编Kev*_*vin的帖子

Magento产品出口与完整的规范网址

有没有办法在命令行上获取带有当前规范URL的产品列表?

class Mage_Shell_UrlTest extends Mage_Shell_Abstract
{

public function run()
{
    $productCollection = Mage::getResourceModel('catalog/product_collection')
            ->addStoreFilter()
            ->addUrlRewrite()
            ->addAttributeToSelect('*')
            ->setPageSize(10) // just for testing
            ->addFieldToFilter('visibility',Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH)
            ->addAttributeToFilter('status', array(
                'eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED
            ));

    Mage::getSingleton('cataloginventory/stock')
            ->addInStockFilterToCollection($productCollection);

    foreach ($productCollection as $product) {

        $url = $product->getUrlModel()->getUrl($product, array('_ignore_category' => true));

        echo PHP_EOL . $url . PHP_EOL; // debug output
    }
}
}

$shell = new Mage_Shell_UrlTest();
$shell->run();
Run Code Online (Sandbox Code Playgroud)

我用php -f magento/shell/urlTest.php运行它,这给了我这样的东西:

http://www.domain.com/urlTest.php/catalog/product/view/_ignore_category/1/id/307/s/any_valid_product_url_key

php export command-line-interface magento canonical-link

8
推荐指数
1
解决办法
1292
查看次数

如何在docker .env文件中使用环境变量?

我有一个缓存文件夹,路径存储在一个环境变量中: $LOCAL_CACHE (export LOCAL_CACHE=/home/me/path/to/any/cache/folder)

现在,我想在.env文件中附加一些其他文件夹:

我的.env文件:

LOCAL_COMPOSER_DIR=${LOCAL_CACHE}/composer
LOCAL_NPM_DIR=${LOCAL_CACHE}/npm
LOCAL_BOWER_DIR=${LOCAL_CACHE}/bower
Run Code Online (Sandbox Code Playgroud)

我的docker_compose.yml看起来像这样:

version: '2'
services:
  composer:
    env_file: .env
    image: composer/composer
    volumes:
      - ./src:${APP_ROOT}
      - ${LOCAL_COMPOSER_DIR}:/composer
    working_dir: ${APP_ROOT}
Run Code Online (Sandbox Code Playgroud)

当我启动服务时,docker-compose run composer instal. ...它停止并显示以下错误:ERROR: Named volume "$LOCAL_CACHE"/composer":/composer:rw" is used in service "composer" but no declaration was found in the volumes section.

我不确定,但是.env文件似乎不支持使用变量。

environment-variables docker-compose

6
推荐指数
1
解决办法
6996
查看次数

Laravel相互冲突的路线

我的routes.php摘录:

Route::group(['prefix' => 'admin', 'namespace' => 'Admin'], function() {

    Route::resource('posts', 'PostsController', [
        'except' => ['show']
    ]);

    Route::delete('posts/trash', [
        'as' => 'posts.trash.empty',
        'uses' => 'PostsController@emptyTrash'
    ]);

});
Run Code Online (Sandbox Code Playgroud)

我的PostsController.php摘录:

/**
 * DELETE /admin/posts/{id}
 */
public function destroy($id)
{
    // code
}

/**
 * DELETE /admin/posts/trash
 */
public function emptyTrash()
{
    // code
}
Run Code Online (Sandbox Code Playgroud)

问题是Laravel将DELETE /admin/posts/trash请求中的'trash'字符串混淆为{id}参数.因此,destroy()调用该方法而不是emptyTrash().为什么以及我能为此做些什么?

php routes laravel laravel-5

1
推荐指数
1
解决办法
1737
查看次数