我是一个相对新手,所以这对你们大多数人来说可能是显而易见的,但对我来说不是!
我有 3 个模型(针对这个问题)
项目、ProjectDataset 和 UserSessionDownload
Project 中的视图调用控制器 UserSessionDownloads 以在日志表中记录下载(感谢 Steve Moseley 的帮助,运行良好),然后进行下载。要下载文件,需要文件的完整路径名。
因此,UserSessionDownload 函数然后调用 ProjectDataset 的模型/控制器来获取所选 ProjectDataset 的文件名(由 id 标识)。
然后,此文件名将用于获取相关文件。
代码部分如下: 在项目视图中:
echo $this->Html->Link('Add a Ref', array('controller'=>'UserSessionDownloads', 'action'=>'add_download',$project_dataset['id'],$project['Project']['id']));
在 UserSessionDownloads 中,函数“add_download”然后调用 ProjectDataset 中的函数(我已将 ProjectDataset 模型加载到此函数中):
$filename = $this->ProjectDataset->get_filename($this->request->params['pass'][0]);
(参数是指从项目视图调用传入的数据集的id)
现在,我尝试了模型和控制器文件中的 get_filename 函数 - 但两者似乎都无法从 project_datasets 表中获取所需的数据集数据。
我尝试了许多组合 - 但显然不是正确的组合。
例如,如果我尝试将函数放入控制器中:
$this->set('projectDataset', $this->ProjectDataset->read(null, $id));
$filename = $this->projectDataset['dataset_filename'];
失败 - 说 SQL 不正确(甚至看起来不像 sql!)
还有这个:
$this->set('project_dataset', = $this->ProjectDataset->find('first',array('conditions' => array('id' => $id)));
$filename = $this->project_dataset['dataset_filename'];
无法报告 SQL 错误。
虽然如果我将函数放入模型中,那么我会收到错误消息说对象不存在..
很抱歉这篇文章的长度,但如果您有建议的更改,或者如果您知道有些东西可行,请给我一个例子。
谢谢