2017-03-03 6 views
0

以下は私のLevelOneModelです。私は私が含まれていないものを把握していないようです。私は援助が必要です。保存方法1対多のデー​​タベースとの関係

私は何を達成したいことは以下

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 


class LevelOneModel extends Model 
{ 
public function users(){ 
    return $this->hasMany('App\User'); 
} 

} 

leveloneテーブル内のすべてのユーザーIDを持っていることですが、私のUserモデル

<?php 

namespace App; 

use Illuminate\Notifications\Notifiable; 
use Illuminate\Foundation\Auth\User as Authenticatable; 


class User extends Authenticatable 
{ 
use Notifiable; 

/** 
* The attributes that are mass assignable. 
* 
* @var array 
*/ 
protected $fillable = [ 
    'first_name', 
    'last_name', 
    'email', 
    'phone', 
    'bank_name', 
    'acct_name', 
    'acct_number', 
    'profile_pix', 
    'sme', 
    'other_sme', 
    'password', 
]; 

public function levelone() 
{ 
    return $this->belongsTo('App\LevelOneModel'); 
} 

/** 
* The attributes that should be hidden for arrays. 
* 
* @var array 
*/ 
protected $hidden = [ 
    'password', 'remember_token', 
]; 
} 

であり、以下に私のレベル1マイグレーションファイルは

です
<?php 

use Illuminate\Support\Facades\Schema; 
use Illuminate\Database\Schema\Blueprint; 
use Illuminate\Database\Migrations\Migration; 

class CreateLevelOneTable extends Migration 
{ 
/** 
* Run the migrations. 
* 
* @return void 
*/ 
public function up() 
{ 
    Schema::create('level_one', function (Blueprint $table) { 
     $table->increments('id'); 
     $table->integer('users_id')->unsigned(); 
     $table->integer('upline_id')->nullable(); 
     $table->timestamps(); 
    }); 
} 

/** 
* Reverse the migrations. 
* 
* @return void 
*/ 
public function down() 
{ 
    Schema::dropIfExists('level_one'); 
} 
} 

ありがとうございました

+0

エラーが発生していますか? –

+0

エラーはありません。これまで私は命名規則に従っていませんでした。私のモデル名はテーブル名と同期していませんでしたが、今修正しました。私はララヴェルの新人です。ユーザーが登録する際に、leveloneテーブルにuserテーブルをどのように接続するのか本当に分かりません。 –

+0

ユーザーが登録するときに列が塗りつぶされるように、leveloneテーブルを設定する方法がわかりません。 –

答えて

0

私はあなたのコード内のいくつかのことを気づくには....

があなたのクラスを見て、私は関係は、ユーザが一つだけLevelOneに属し、この

  • のようなものです理解しています。
  • LevelOneは、複数のユーザー

それが正しければ、関係が誤って移行して構築されを持つことができます。 user_idをlevel_oneテーブルに追加するためです。

これとは逆です。ユーザーのタブにlevel_one_idが含まれている必要があります。

そして、あなたは、ユーザーの移行でのようなものを追加してください。今、あなたが(データベースに)ユーザーとLevelOneとの間の接続を持っている

$table->int('level_one_id'); 
$table->foreign('level_one_id')->references('id')->on('level_one'); 

を。

コード内でユーザーにクエリを実行すると、LevelOneの情報も取得できるはずです。関係についてのLaravelの公式文書を必ず読んでください!それは実際に例を挙げてあなたを助けます。

関連する問題