我在TinyMCE中使用Mad File Manager集成时遇到问题。 我认为问题在于此代码:
<script type="text/javascript">
function MadFileBrowser(field_name, url, type, win) {
tinyMCE.activeEditor.windowManager.open({
file : "mfm.php?field=" + field_name + "&url=" + url + "",
}, {
window : win,
input : field_name
});
return false;
}
</script>
在
file : "mfm.php?field=" + field_name + "&url=" + url + ""
因为Zend Framework返回异常:消息:指定的控制器无效(mfm.php)
Request Parameters:
array (
'controller' => 'mfm.php',
'action' => 'index',
'module' => 'default',
'field' => 'src',
'url' => '',
)
答案 0 :(得分:1)
如果控制器名为MfmController.php,您应该这样做:
<script type="text/javascript">
function MadFileBrowser(field_name, url, type, win) {
tinyMCE.activeEditor.windowManager.open({
file : "/mfm?field=" + field_name + "&url=" + url + "",
}, {
window : win,
input : field_name
});
return false;
}
</script>
在zend框架中,你永远不会直接调用.php。每个请求都通过index.php传递,并由Zend_Route路由到右侧控制器。
答案 1 :(得分:1)
如果您使用的是Zend Framework,则所有请求都会通过应用程序的前端控制器传递,即index.php
。 index.php
解析此格式的请求URL(controllername / actionname?param)并转发指定控制器指定操作的请求(这是默认行为)。对于这种情况,您应该有一个名为controllernameController
的控制器和一个名为actionnameAction
的控制器的操作。这就是为什么
<script type="text/javascript">
function MadFileBrowser(field_name, url, type, win) {
tinyMCE.activeEditor.windowManager.open({
file : "mfm.php?field=" + field_name + "&url=" + url + "",
}, {
window : win,
input : field_name
});
return false;
}
</script>
应该是
<script type="text/javascript">
function MadFileBrowser(field_name, url, type, win) {
tinyMCE.activeEditor.windowManager.open({
file : "mfm?field=" + field_name + "&url=" + url + "",
}, {
window : win,
input : field_name
});
return false;
}
</script>
你应该有一个名为mfmController
并带有indexAction
方法的控制器来处理你的请求(如果没有提到任何动作,默认情况下会执行indexAction。)
欢呼和快乐的编码!