2015-09-24 149 views
1

中添加燈具並進行了一些研究後,我沒有找到任何適當的答案來解決這個問題。在Cakephp 3.x

我開始爲我的CakePHP(3.x)應用程序編寫測試,我在想如何添加燈具及其關聯?換句話說,我們如何將燈具鏈接到另一個燈具,而無需直接在燈具內寫入主鍵和外鍵。

我有一個用戶表和一個UserProfiles表。 用戶通過user_id列擁有一個UserProfile。這是我的用戶夾具。

namespace App\Test\Fixture; 

use Cake\TestSuite\Fixture\TestFixture; 

class UsersFixture extends TestFixture 
{ 

    public $import = ['table' => 'users']; 
    public $records = [ 

     [ 
      'username' => '[email protected]', 
      'primary_role' => 1 
      'is_active' => 1, 
     ] 
    ]; 

} 

這是我的用戶配置夾具

namespace App\Test\Fixture; 

use Cake\TestSuite\Fixture\TestFixture; 

class UserProfilesFixture extends TestFixture 
{ 

    public $import = ['table' => 'user_profiles']; 
    public $records = [ 

     [ 
      'first_name' => 'Mark', 
      'last_name' => 'Yellowknife', 
     ] 
    ]; 

} 

如何我都記錄聯繫在一起?也就是說,我如何告訴用戶配置文件記錄添加其user_id以鏈接到用戶記錄?

必須用夾具來做到這一點,而無需手動編寫密鑰。

謝謝你們!

回答

1

你必須在燈具中定義這個。唯一的另一種方法是在運行時發出更新查詢來設置外鍵,但這不過是一個好主意。

除此之外,沒有一種方法可以做到這一點,我的意思是,如果沒有明確定義它,代碼如何知道哪些記錄需要彼此關聯?

因此,您至少需要定義外鍵,並且根據主鍵的生成方式(自動遞增整數,UUID等),您可能必須定義它們。