以下是我的LevelOneModel。我似乎无法弄清楚我没有包括什么。我需要帮助。
我想要实现的是在levelone表中拥有所有用户ID
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class LevelOneModel extends Model
{
public function users(){
return $this->hasMany('App\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',
];
}
以下是我的第一级迁移文件
<?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)
我注意到代码中的一些内容......
看着你的课程,我理解这种关系是这样的
如果这是正确的,则在迁移中错误地构建关系。因为您要将user_id添加到level_one表。
它应该是相反的:用户表必须包含level_one_id。
您应该在用户迁移中添加它,例如:
$table->int('level_one_id');
$table->foreign('level_one_id')->references('id')->on('level_one');
现在您(在数据库中)有User和LevelOne之间的连接。
现在,如果您在代码中查询用户,您也应该能够获得LevelOne内容。确保真正阅读关于人际关系的官方Laravel文档!它将为您提供实例帮助。