2017-05-16 54 views
0

我对这个Cakephp框架非常陌生,试图了解如何使用cakephp上传文件。我正在使用josediazgonzalez提供的上传插件。在查看文件,使用表单助手我有:如何从输入表单中获取数据CakePHP 3

<?= $this->Form->create($user, ['type' => 'file']) ?> 
<fieldset> 
    <legend><?= __('Add User') ?></legend> 
    <?php 
     echo $this->Form->control('name'); 
     echo $this->Form->control('username'); 
     echo $this->Form->control('password'); 
     echo $this->Form->control('role'); 
     echo $this->Form->input('photo', ['type' => 'file']); 
     echo $this->Form->control('dir'); 
    ?> 
</fieldset> 
<?= $this->Form->button(__('Submit')) ?> 
<?= $this->Form->end() ?> 

我想要再次打印时,我在我的控制器提交的值,我应该怎么写?例如:

$this->request->data; 

回答

3

$ this-> request-> data是传递给您的scirpt的数据数组。你可以用它来获取现场,你有兴趣与,如:

$data = $this->request->data; 
$someVariable = $data["name"]; 

或者,您也可以直接访问任何领域,通过使用数据()访问:

$someVariable = $this->request->data("name"); 

从这一点来说,你可以用这个变量做任何你想要的。我们建议使用$ this-> request($ this-> request-> data()和$ this-> request-> data - > getData()代替。使用方法是相似的:

$this->request->getData(); //will return array of data passed 
$this->request->getData("field_name"); //access to specific field 
+0

1以上问题,你知道的多文件上传?IM用起来太麻烦,选择多,但只有1是上传和存储 – vicnoob

+0

您正在使用的插件,我不知道,但是你当前的文件输入不应该允许上传多个文件。但如果你改变你的文件输入,如下所示:'$ this-> Form-> input(“photos。”,[“type”=>“file”,“multiple”])'它可以让你选择多个文件。提交表单后,在请求数据中会有一个名为“photos”的数组 - 您可以遍历它并保存所有文件。 – Szymon

+0

我的问题是,当我在照片后添加一个点时,出现错误“无法获取空白属性”。你有Skype或什么,我可以联系进一步的信息? :( – vicnoob