CakePHP如何组合流程步骤

CakePHP如何组合流程步骤,cakephp,button,Cakephp,Button,我正在开发一个允许用户下载文件的系统,但是如果他们下载了一个文件,我希望将此操作记录在一个特殊用途表(MySQL)中 我已经可以生成一个带有相应文件链接的图标,但我看不出如何制作单击图标下载文件的记录,也无法创建日志记录 我猜我将不得不使用一个按钮,并将按钮的动作设置为运行。。。什么?一个控制器动作,一个助手函数,其他的 这是最后一点,我真的无法恢复理智。我将感谢任何可能实施过类似措施的人的建议 你的想法是对的。链接到控制器操作,该操作将写入数据库和日志,并将加载文件并将其呈现给用户 例如: c

我正在开发一个允许用户下载文件的系统,但是如果他们下载了一个文件,我希望将此操作记录在一个特殊用途表(MySQL)中

我已经可以生成一个带有相应文件链接的图标,但我看不出如何制作单击图标下载文件的记录,也无法创建日志记录

我猜我将不得不使用一个按钮,并将按钮的动作设置为运行。。。什么?一个控制器动作,一个助手函数,其他的

这是最后一点,我真的无法恢复理智。我将感谢任何可能实施过类似措施的人的建议


你的想法是对的。链接到控制器操作,该操作将写入数据库和日志,并将加载文件并将其呈现给用户

例如:

class MyController extends AppController {

    // Load the model
    public $uses = ('DbTable');

    public function get_file() {
        // Save the DB record
        $this->DbTable->save(...);

        // Set the output header for content delivery 
        // (use the appropriate mime-type for your file)
        header('Content-Type: image/jpg');

        // Have it download as if it were an attachment
        header('Content-Disposition: attachment; filename="filename.jpg"');

        // Print out the file contents
        echo file_get_contents('/path/to/filename.jpg');

        // Prevent any further processing or rendering
        exit();
    }
}

嗨,谢谢,史蒂文。我使用的是cakephp 2.2-是否支持上述所有功能?是的,应该支持,尽管它不是完整的代码片段。。。您必须修改它以满足您的确切需要(例如,
Model->save()
bit)。您好-很抱歉,太厚了。。您建议我链接到控制器操作-因此我尝试使用html->link-但是,我需要向控制器操作传递一个参数数组,因为控制器与链接视图使用的控制器不同。。我似乎无法让它发挥作用。有什么想法吗,或者我应该提出另一个问题吗?试试
嗨,史蒂夫,我在模型/控制器之间的函数调用方面遇到了问题。我想我最好提出一个新问题。等我把另一部分做好后,我会回来给你打勾。写入表日志工作正常!只需下载一位进行测试(一旦我对这个函数进行了排序!)