2016-02-23 3 views
0

Я пытаюсь зарегистрировать человек с Стражей и Laravel 5. `Laravel Сентинел внешний ключ

Route::get('/', function() { 

    $credentials = [ 
     'email' => '[email protected]', 
     'password' => 'password', 
     'client_id' =>1, 
    ]; 

    $user = Sentinel::register($credentials); 
});` 

Я получаю ответ

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a 
child row: a foreign key constraint fails (`dbmenubook`.`users`, CONSTRAINT 
`fk_users_me_clients1` FOREIGN 
KEY (`client_id`) REFERENCES `me_clients` (`id`) ON DELETE NO ACTION 
ON UPDATE NO ACTION) (SQL: insert into `users` 
(`email`, `password`, `updated_at`, `created_at`) values ([email protected], 
y2016-02-23 
16:02:31fQMyg1raDBf/dNrQGQMe.LDxEHO5yQCA.J5cbZKmyuLKLYzzUIra, 
2016-02-23 
16:02:31, ?)) 

Теперь я пытаюсь добавить client_id, который дает мне эту ошибку. Но похоже, что client_id не отправляется. Я предполагаю, что это что-то делать с моделью и нефтеналивной массив, но это, кажется, ОЭК

пользователя Модель

<?php 

namespace App; 

use Illuminate\Foundation\Auth\User as Authenticatable; 

class User extends Authenticatable 
{ 
    /** 
    * The attributes that are mass assignable. 
    * 
    * @var array 
    */ 

    protected $table = 'users'; 
    protected $fillable = [ 
     'name', 'email', 'password', 
    ]; 

    /** 
    * The attributes excluded from the model's JSON form. 
    * 
    * @var array 
    */ 
    protected $hidden = [ 
     'password', 'remember_token', 
    ]; 
} 

стол пользователя

CREATE TABLE `users` (
    `id` int(10) unsigned NOT NULL, 
    `email` varchar(255) COLLATE utf8_unicode_ci NOT NULL, 
    `password` varchar(255) COLLATE utf8_unicode_ci NOT NULL, 
    `permissions` text COLLATE utf8_unicode_ci, 
    `first_name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, 
    `last_name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, 
    `created_at` timestamp NULL DEFAULT NULL, 
    `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
    `client_id` int(10) unsigned NOT NULL, 
    `last_login` timestamp NULL DEFAULT NULL, 
    `ipad_id` int(10) DEFAULT NULL 
) ENGINE=InnoDB AUTO_INCREMENT=79 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; 

Doesn Кто-нибудь знает, в чем проблема является?

ответ

0

У меня была аналогичная проблема.

Проверьте конфигурационный файл /config/sentinel.cartalyst.php (если вы его опубликовали).

Я нашел там, что пользовательская модель Sentinel была по умолчанию яркой моделью, у которой не было необходимых атрибутов.

Я создал свою модель, расширенную модель Sentinel Eloquent по умолчанию и реализую ее интерфейсы, добавив туда новый массив заполняемых полей, и он сработал.

Я не уверен, что это лучшее и правильное решение, но ответов нет, и я надеюсь, что это решение может вам помочь.

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