1

当我们开始我的项目的第二部分时。我们想先开始完成迁移过程,然后再进行项目的后半部分。我对迁移过程有一些担忧,并想消除我的疑虑。

目前,在我的项目中,我们使用了很多下面提到的这些功能

  1. 我们是否必须将所有 $this->Form->输入['description'] 替换为 $this->Form->控件['description']?
  2. 当您提到 Response::download() 将变为 Response::withDownload()。你的意思是我必须将 $this->response->download($filename) 更改为 $this->response->WithDownload($filename)?
  3. 我们在 Table.php 中有此代码行 $this->primaryKey('id') ,您提到它是已弃用列表的一部分,并已替换为 getX() 和 setX() 方法。你那是什么意思?我希望你能给我一个例子。
  4. 在控制器中可以找到以下代码,我注意到您提到了 hydrate()(现在是 enableHydration() / isHydrationEnabled())。下面我们需要做哪些改变?

    $CustomersordersTable-> find()                  
                              -> select(['order_id'=>'Customerorders.order_id'])
                              -> where(['id IN' => $studentlist])
                              -> hydrate(false)
                              -> toArray();
    
  5. 我也明白 $this->request->data['id'] 已被弃用,我们需要 $this->request->getData('id')。但是,当添加细节时,现在我们不能为这个 $this->request->getData('id') 分配一个随机的 id 值。在保存到表中之前,我曾经使用以下分配一个随机 id。

    $this->request->data['id'] = TableRegistry::get('Customers')->find('guid'); 
    

您有 CakePHP 4.0 的暂定发布日期吗?

4

2 回答 2

2
  1. 是的
  2. 是的
  3. 只需使用 set 方法设置值并获取值即可。像 setTable($name)。
  4. 启用水合()
  5. 请求数据不应该被直接修改。不是在 3.4 之前,也不是之后。从请求中获取数据,修改它,做任何你不想用它做的事情。3.4 中的请求对象是不可变的。

CakePHP4 没有发布日期,只是一个没有日期的路线图。CakePHP 是由志愿者开发的,所以工作会随着人们有时间和心情工作而完成。欢迎投稿。:)

于 2017-02-22T10:05:39.473 回答
0

5.

$guid = TableRegistry::get('Customers')->find('guid');
$newData = $this->request->withData('id', $guid);

// 获取新的请求数据

$newData->getData('id');
于 2017-02-25T12:08:58.567 回答