小编fms*_*ird的帖子

如何在产品页面中包含动态块并启用整页缓存?

我们想在产品页面添加动态块.问题是产品页面具有完整页面缓存(由于速度问题,我们无法将其关闭).我们希望根据登录用户的帐户在每个产品页面上显示不同的信息,并且因产品而异.

我创建了一个具有自己的缓存的单独块,但是它显示了上一个产品页面中的相同块.我正在尝试更改它的缓存方法,因此它不会保存以前产品页面中的缓存.

它最初几次进入产品页面,然后突然开始显示一个Magento错误页面,上面写着:"网站在检索http://www.mycompany.com/productpage.html时遇到错误.它可能是关闭维护或配置不正确."

这是我到目前为止所做的.我创建了app/code/local/MyCompany/MyModule/PageCache/etc/config.xml来添加MyCompany_PageCache_Model.

然后我用这些函数在app/code/local/MyCompany/MyModule/PageCache/Model/Container/MyFile.php中创建了控制缓存的文件:

protected function _getCacheId()
{
    return 'CONSTANT_CACHE' . md5($this->_placeholder->getAttribute('cache_id'));
}

protected function _saveCache($data, $id, $tags = array(), $lifetime = null)
{
    return false;
}

protected function _renderBlock()
{
    $blockClass = $this->_placeholder->getAttribute('block');
    $template = $this->_placeholder->getAttribute('template');

    $block = new $blockClass;
    $block->setTemplate($template);
    $block->setLayout(Mage::app()->getLayout());
    return $block->toHtml();
}
Run Code Online (Sandbox Code Playgroud)

我还使用我的占位符为CONSTANT_CACHE在Catalog/etc下创建了cache.xml.

上面的语法是不正确的,还是有更简单的方法来做到这一点?

caching magento

36
推荐指数
2
解决办法
2万
查看次数

如何在Laravel中实现数组类型路由?

我试图在Laravel 5.8中实现数组类型的路由。
这是我尝试过的:

Route::get('/','/myroute', 'MyController@index');
Route::get(['/','/myroute'], 'MyController@index');
Route::get([('/','/myroute')], 'MyController@index');
Route::get('/' || '/myroute', 'MyController@index');  
Run Code Online (Sandbox Code Playgroud)

基本上,我想做的是创建一个具有“ OR”条件的路由。
假设我想index使用mydomain.dev/或访问MyController ,mydomain.dev/myroute但得到404 | Not Found

试图阅读Laravel文档,但找不到任何指向我正在尝试做的事情。

php laravel

18
推荐指数
2
解决办法
572
查看次数

如何从 useFormikContext 解构表单输入值?

我正在尝试解构values以获得表单输入的特定值useFormikContext()

我已经这样做了:

const { values } = useFormikContext()    
const { name, age } = values  
Run Code Online (Sandbox Code Playgroud)

但我收到如下错误:

'name'类型“未知”上不存在属性

formik

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

React-router v6 window.scrollTo 不起作用

我正在尝试解决 React 中的滚动问题,其中当我向下滚动到页面上的某个点,然后导航到另一个页面时,该页面将从与上一页相同的滚动点开始。

这是我尝试过的:

import { useLocation } from 'react-router'

const ScrollToTop: React.FC = () => {
  const { pathname } = useLocation()
  React.useEffect(() => {
    console.log('im scrolling')
    window.scrollTo(0, 0)
  }, [pathname])

  return null
}

export default ScrollToTop
Run Code Online (Sandbox Code Playgroud)

然后像这样导入它:

import React from 'react'
import ReactDOM from 'react-dom'

import { BrowserRouter } from 'react-router-dom'

import ScrollToTop from './components/base/ScrollToTop'
import Apps from './App'

ReactDOM.render(
  <BrowserRouter>
    <ScrollToTop />
    <Apps />
  </BrowserRouter>,
  document.getElementById('root'),
)
Run Code Online (Sandbox Code Playgroud)

我滚动正在控制台中打印,但window.scrollTo不起作用。
我也尝试了useLayoutEffect,但相同的结果仍然不滚动。

reactjs react-router react-router-dom

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

Maatwebsite/Laravel-Excel Import 将特殊字符转换为数字 0

我有一个 CSV 文件,其中一些行的文本/单词包含特殊字符,例如\xc3\xb1,

\n\n

发生的情况是,当我尝试导入 CSV 文件时,上面或类似字符的单词将被转换为0。

\n\n

我正在使用ToModel

\n\n
use Maatwebsite\\Excel\\Concerns\\ToModel;\n
Run Code Online (Sandbox Code Playgroud)\n\n

要重现此问题,只需尝试在 CSV 文件的一个单元格中放入一个特殊字符,然后将其导入,如下所示:

\n\n
Excel::import(new CsvImport, request()->file('file'));\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n

输出:插入的数据中含有特殊字符的数据将被存储为0

\n
\n\n

注意:直接从Form添加数据不会将特殊字符转换为0,仅在通过导入上传CSV时

\n

laravel maatwebsite-excel

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