2016-01-30 1 views
0

У меня есть 2 аккаунта, бизнес \ пользователь компании и частный пользователь, они делят некоторые атрибуты как электронную почту, пароль, имя. но есть необходимость хранить больше вещей о бизнесе. поэтому у меня есть две таблицы.Laravel 5.2 -> заполнить таблицы при регистрации

основная таблица: пользователи Компания: компания подключена через внешний ключ (user_ID). До сих пор я ничего не мог написать в таблице компании:/ любой совет?

ошибки я получаю

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'homestead.companies' doesn't exist (SQL: insert into `companies` (`ICO`, `updated_at`, `created_at`) values (15, 2016-01-30 18:38:28, 2016-01-30 18:38:28)) 

DonT understant почему он не может найти таблицу "компании"

бизнес-модель:

class Company extends Model 
{ 
     protected $fillable = ['ICO']; 
     public function user() { 
     return $this->belongsTo('App\User'); 
}} 

модель пользователя:

class User extends Authenticatable { 
    protected $fillable = [ 
     'firstname','middlename','lastname', 'email', 'password','usertype',]; 
    protected $hidden = ['password', 'remember_token',]; 
    public function company(){ 
    return $this->hasMany('App\Company'); 
    } 
} 

миграционный компания

public function up() { 
     Schema::create('companyuser', function (Blueprint $table) { 
     $table->integer('user_id')->unsigned()->nullable(); 
     $table->integer('ICO'); 
     $table->timestamps(); 
     $table->foreign('user_id')->references('id')->on('users') 
       ->onDelete('cascade');  
     }); 
    } 

AuthController.php

$user = User::create([ 
         'firstname' => $data['firstname'], 
         'lastname' => $data['lastname'], 
         'middlename' => $data['middlename'], 
         'usertype' => $data['usertype'], 
         'email' => $data['email'], 
         'password' => bcrypt($data['password']), 
      ]); 
    //no problem with this upper part but with this part on bottom. 
    $company = Company::create([ 
       'ICO' => $data[ICO], 
      ]); 
+0

какую ошибку вы получаете? дайте нам больше информации –

+0

им жаль, отредактированный оригинальный пост. – miiisapiiisa

+0

Вы назвали компанию companyuser не компаниями. Проверьте имя phpmyadmin для имени таблицы. Довольно очевидный материал –

ответ

0

Пожалуйста, проверьте, если у вас есть "компании" стол.

Потому что вы создаете таблицу «companyuser». Но вы не определили его в модели «Компания».

Переименуйте эту таблицу компаний или добавить protected $table = "companyuser" в \ App \ Company

+0

Я нашел проблему. laravel создает имя таблицы, изменяя имя модального имени на множественную форму. не знал этого. – miiisapiiisa

+0

Да, вы правы. Если у вас есть модель пользователя, тогда имя таблицы должно быть ** пользователями **. В противном случае вы должны определить его в своей модели, как я упоминал выше – zgabievi