工匠迁移不会在控制器中运行

时间:2017-10-06 10:11:06

标签: php json laravel rest artisan

我有一个通过API /用户填充的联系人数据库,它可以正常地将所有用户数据收集到表中。

我希望用户点击按钮并获得具有唯一价值(电话和电子邮件)的更新联系人列表

要执行此操作我希望运行迁移:每当用户点击#getcontacts按钮时刷新,这样就会获得更新到最新插页的全新联系人列表。

我还是

SQLSTATE [23000]:完整性约束违规:1062密钥'contacts_email_unique'重复输入

use Artisan

[...]



public function makeContacts(){

    $apiResponse = file_get_contents($this->userList); //call to the api URL

    $users = json_decode(
        $this->extractString($apiResponse,9,-1)
    ); //hard formatting response for my own purposes 

 Artisan::call('migrate:refresh', array('--path' => 'app/migrations', '--force' => true));

    foreach ($users as $user){ 

        $contact = new Contact(); 
        $contact->firstname = $user->firstname; 
        $contact->lastname = $user->lastname; 
        $contact->email = $user->email; 
        $contact->phone = $user->phone; 
        foreach ($user->zones->zones as $zone){
            $contact->zone = $zone->name;
        }
        $contact->save(); 

    }
}

我注意到了:

  1. 在我的函数的最开始调用它不会改变任何内容
  2. 如果从控制台调用
  3. ,则刷新命令可以正常工作
  4. 转储结果给出0(实际上我不知道它意味着什么)
  5. 我该怎么做才能摆脱这个问题?我的错误在哪里?我无法理解为什么它不会运行命令。语法似乎是正确的,谢谢你的帮助!!

1 个答案:

答案 0 :(得分:0)

感谢lewis4u:https://stackoverflow.com/users/2502731/lewis4u

我使用空数组作为Artisan的第二个参数:调用函数,它现在可以正常工作。