- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,我已经创建了一个文件上传表单,除了当我按提交时,它一切正常,它不会将我重定向到 Uploads/add.ctp,但它确实将文件保存到目录并保存到事实上,如果我将重定向指向上传/浏览,它仍然不会带我去上传/浏览。
这是我的 Controller
public function add() {
if(!empty($this->data)){
$file = $this->request->data['Upload']['file'];
if ($file['error'] === UPLOAD_ERR_OK && $this->Upload->save($this->data)){
$this->Upload->save($this->data);
if(move_uploaded_file($file['tmp_name'],APP.'webroot/files/uploads'.DS.$this->Upload->id.'.mp4')) {
$this->Session->setFlash(__('<p class="uploadflash">The upload has been saved</p>', true));
$this->redirect(array('controller'=>'Uploads','action' => 'add'));
} else{
$this->Session->setFlash(__('<p class="uploadflash">The upload could not be saved. Please, try again.</p>', true));
}
}
}
}
这是我的表格
<div class="maincontent">
<?php echo $this->Form->create('Upload', array('type' => 'file', 'class'=>'uploadfrm'));?>
<fieldset class='registerf'>
<legend class='registerf2'>Upload a Video</legend>
<?php
echo 'Upload your video content here, there is no size limit however it is <b>.mp4</b> file format only.';
echo '<br/>';
echo '<br/>';
echo $this->Form->input('name', array('between'=>'<br />', 'class'=>'input'));
echo $this->Form->input('eventname', array('between'=>'<br />'));
echo $this->Form->input('description', array('between'=>'<br />', 'rows'=> '7', 'cols'=> '60'));
echo $this->Form->hidden('userid', array('id' => 'user_id','value' => $auth['id']));
echo $this->Form->hidden('username', array('id' => 'username', 'value' => $auth['username']));
echo $this->Form->input('file', array('type' => 'file'));
echo "<br/>"
?>
<?php echo $this->Form->end(__('Submit', true));?>
</fieldset>
<?php
class UploadsController extends AppController {
public $name = 'Uploads';
public $helpers = array('Js');
// Users memeber area, is User logged in…
public $components = array(
'Session',
'RequestHandler',
'Auth'=>array(
'loginRedirect'=>array('controller'=>'uploads', 'action'=>'browse'),
'logoutRedirect'=>array('controller'=>'users', 'action'=>'login'),
'authError'=>"Members Area Only, Please Login…",
'authorize'=>array('Controller')
)
);
public function isAuthorized($user) {
// regular user can access the file uploads area
if (isset($user['role']) && $user['role'] === 'regular') {
return true;
}
// Default deny
return false;
}
function index() {
$this->set('users', $this->Upload->find('all'));
}
// Handling File Upload Function and updating uploads database
public function add() {
if(!empty($this->data)){
$file = $this->request->data['Upload']['file'];
if ($file['error'] === UPLOAD_ERR_OK){
$this->Upload->save($this->data);
if(move_uploaded_file($file['tmp_name'],APP.'webroot/files/uploads'.DS.$this->Upload->id.'.mp4'))
{
$this->redirect(array('controller' => 'Uploads', 'action' => 'add'));
$this->Session->setFlash(__('<p class="uploadflash">The upload has been saved</p>', true));
} }else {
$this->Session->setFlash(__('<p class="uploadflash">The upload could not be saved. Please, try again.</p>', true));
}
}
}
function browse () {
// Find all in uploads database and paginates
$this->paginate = array(
'limit' => 5 ,
'order' => array(
'name' => 'asc'
)
);
$data = $this->paginate('Upload');
$this->set(compact('data'));
}
function recentuploads () {
$uploads = $this->Upload->find('all',
array('limit' =>7,
'order' =>
array('Upload.date_uploaded' => 'desc')));
if(isset($this->params['requested'])) {
return $uploads;
}
$this->set('uploads', $uploads);
}
function watch ($id = null){
$this->set('isAjax', $this->RequestHandler->isAjax());
// Read Uploads Table to watch video
$this->Upload->id = $id;
$this->set('uploads', $this->Upload->read());
// Load Posts Model for comments related to video
$this->loadModel('Post');
$this->paginate = array(
'conditions' => array(
'uploadid' => $id),
'limit' => 4
);
$data = $this->paginate('Post');
$this->set(compact('data'));
// Load Likes Model and retrive number of likes and dislikes
$this->loadModel('Like');
$related_likes = $this->Like->find('count', array(
'conditions' => array('uploadid' => $id)
));
$this->set('likes', $related_likes);
}
}
?>
有什么建议吗?
最佳答案
此 add
函数位于您的 UploadsController 中,对吗?您希望它重定向到上传/浏览吗?
在您的 UploadsController 中,$name
设置为什么?
<?php
class UploadsController extends AppController {
public $name = ?; // What is this variable set to?
}
通过 Cake 的 Inflector,当您在重定向中指定 Controller 时,它应该是小写:
$this->redirect(array('controller' => 'uploads', 'action' => 'browse'));
或者,如果您定向的操作和您想要定向的操作位于同一 Controller 中,则您甚至不需要指定 Controller 。例如,如果您从 UploadsController add()
提交表单,并且想要重定向到 browse()
:
$this->redirect(array('action' => 'browse'));
尝试一下,看看是否有帮助。
另请注意,您在 add
函数中调用 $this->Upload->save($this->data) 两次。
public function add() {
if(!empty($this->data)){
$file = $this->request->data['Upload']['file'];
if ($file['error'] === UPLOAD_ERR_OK && $this->Upload->save($this->data)) {
$this->Upload->save($this->data);
if(move_uploaded_file($file['tmp_name'],APP.'webroot/files/uploads'.DS.$this->Upload->id.'.mp4')) {
$this->Session->setFlash(__('<p class="uploadflash">The upload has been saved</p>', true));
$this->redirect(array('controller'=>'Uploads','action' => 'add'));
} else {
$this->Session->setFlash(__('<p class="uploadflash">The upload could not be saved. Please, try again.</p>', true));
}
}
}
}
具体来说,在这里:
if ($file['error'] === UPLOAD_ERR_OK && $this->Upload->save($this->data)) {
$this->Upload->save($this->data);
...
当您在 if
条件中调用它时,它仍然会将数据保存到数据库中。把第二个去掉就可以了。
关于php - CakePHP 2.0,提交表单重定向未正确呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10144701/
经验丰富的程序员,但对 CakePHP 2.1 不熟悉,我花了一天的时间努力让自定义 Helper 在 View 中工作,遵循手册:http://book.cakephp.org/2.0/en/vie
任何人都可以列出 CakePHP 框架相对于其他 PHP 框架的缺点吗? 1) 请解释为什么缺少的功能对 PHP 项目如此重要? 2) 该缺失的功能如何帮助那些使用具有该功能的框架的 Web 开发人员
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 6年前关闭。 Improve thi
我对 PHP 比较陌生。开始学习 PHP,但后来遇到了 cakePHP,它可以加快开发时间。 阅读文档和博客教程后,我仍然不明白命名约定。我想在我开始做一些例子之前我不会知道,但是为了让我开始,有人可
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 6 年前。
任何人都可以告诉我为什么当一个字段没有翻译时它返回空,而不是默认翻译? 我会感谢所有建议... 不知道你想看我代码的哪一部分,因为它都是直接来自 www.book.cake.org。所以我粘贴了一些代
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我正在编写一个支持多种测量单位的应用程序。在极少数情况下,用户想要更改他们的测量系统,我需要运行一个查询,该查询应用乘数将应用程序中的每个单位列缩放到正确的测量系统。为了确保所有数据在此操作出现问题时
很难说出这里问的是什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或言辞激烈,无法以目前的形式合理回答。如需帮助澄清此问题以便可以重新打开,visit the help center . 8年前关闭
在用户模型中: var $hasMany = array( 'Photo' => array( 'className' => 'Photo',
剧透:我想更好地了解对 CakePHP 应用程序的请求的生命周期。 背景:我使用的是 CakePHP v2.3。我正在调试一个问题,该问题导致我无法找到的不想要的重定向。我正在尝试通过增量添加 die
在我的 Cake 应用程序中,我有一个 Controller “completed_projects”。它的索引操作不带参数并列出了一些项目。可以访问不同的页面example.com/complete
我找不到有关cakeError()定义为成员函数的任何信息。 documentation仅声明该调用看起来像这样: $this->cakeError(string $errorType [, arra
我创建了一个自定义数据源,该数据源从Web api获取数据,现在我正在研究实现错误处理。 在数据源中,我正在调用$ model-> onError()。在模型中,我创建了onError方法,并且可以使
除了重定向和渲染之外,还有其他命令可以将 Controller 重定向到特定 View 页面吗? 我的重定向为 $this->redirect('/forms/homepage/'.$userId);
我试图在我的字段中查找计数并连接该计数,但它给出错误消息,因为找不到 make_count 并且我在上面创建了相同的字段。 $this->Car->virtualFields['make_count'
我想要条件验证,即在更新密码时隐藏字段,并且密码验证为“6 到 15”个字符!因此密码以哈希格式存储在数据库中,因此不允许我更新。我的模型代码如下, array( 'rule
echo $form->input( 'country_id', array( 'type' => 'select', 'label' => __('C
我正在使用 CakePHP 创建一个锦标赛平台。目前,我已经创建了以下可以完美运行的表格、模型和 Controller :锦标赛、用户和团队。 我还创建了一个“Tournamentuser”表、 Co
我的场景是这样的: 在我的/views/layout/default.ctp 在我的/views/pages/home.ctp Html-
我是一名优秀的程序员,十分优秀!