2016-07-08 5 views
0

У меня есть таблицы базы данных: правообладатели, билеты и категории. В таблице билета assignee_id и category_id - это внешний ключ. Я написал несколько контроллеров запросов. И я попытался сохранить новый запрос в базу данных. Но когда я проверить мое приложение, оно будет показано ниже ошибок:не может хранить новые данные

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`laraapi`.`tickets`, CONSTRAINT `tickets_assignee_id_foreign` FOREIGN KEY (`assignee_id`) REFERENCES `assignees` (`id`)) (SQL: insert into `tickets` (`title`, `content`, `priority`, `updated_at`, `created_at`) values (testtitle, test content, 1, 2016-07-08 16:06:16, 2016-07-08 16:06:16)) 

Вот некоторые коды блок моего контроллера билета (App \ Http \ Контроллеры \ TicketCtrl.php)

public function store(TicketRequest $request) 
    { 
     $values = $request->all(); 

     Ticket::create($values); 

     response()->json(['message'=>'Done!']); 
    } 

Вот коды блок запрос моего билета (App \ Http \ просит \ TicketRequest.php)

public function authorize() 
    { 
     return true; 
    } 

    /** 
    * Get the validation rules that apply to the request. 
    * 
    * @return array 
    */ 
    public function rules() 
    { 
     return [ 
      'title' => 'required', 
      'content' => 'required', 
      'priority' => 'required' 
     ]; 
    } 

    public function response(array $errors) 
    { 
     return response()->json(['message'=> 'You should put title, content and priority', 'code'=> 422], 422); 
    } 

} 

в запросе билета, я изменил санкционировать ИСТИНА, потому что я не сделал установки какой-либо услуги авторизации.

ответ

0

Теперь у меня есть решение исправить.

Я добавляю \DB::statement('SET FOREIGN_KEY_CHECKS = 0'); перед созданием и \DB::statement('SET FOREIGN_KEY_CHECKS = 1'); после создания. Но я не знаю подробных преимуществ и недостатков использования SET FOREIGN_KEY_CHECKS.

Смежные вопросы