Php 一对多的关系不起作用
有两个表,一个称为user,另一个称为user\u relation\u user 在我的迁移中,我的关系是一个用户对多个用户的关系。我想用php artisan tinker创建10个用户,所以我运行factoryApp\user::class,10->create;最后,我访问了我的数据库,所以从用户中选择*有10个用户,但在用户关系中,用户不是10个id或者是空的Php 一对多的关系不起作用,php,database,laravel,Php,Database,Laravel,有两个表,一个称为user,另一个称为user\u relation\u user 在我的迁移中,我的关系是一个用户对多个用户的关系。我想用php artisan tinker创建10个用户,所以我运行factoryApp\user::class,10->create;最后,我访问了我的数据库,所以从用户中选择*有10个用户,但在用户关系中,用户不是10个id或者是空的 <?php namespace App; use Illuminate\Database\E
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Administrator extends Model
{
protected $table = 'user_relation_user';
protected $primaryKey = 'id';
protected $fillable = ['user_id'];
public function users(){
return $this->belongsTo(User::class,'user_id');
}
}
<?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 = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
public function administrator(){
return $this->hasMany(Administrator::class,'user_id');
}
}
//hasMany
我的迁移
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUserRelationUserTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('user_relation_user', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id')->unsigned();
$table->integer('user_id_admin')->unsigned();
$table->timestamps();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
});
}
/**
* Reverse the migrations.
*foreign
* @return void
*/
public function down()
{
Schema::dropIfExists('user_relation_user');
}
}
您定义的关系是正确的,您只需要在用户模型中定义一个关系即可 例如: 假设您正在开发一个博客系统,用户可以在其中发布博客。 然后将有两个模型用户模型和博客模型 在用户模型中,您必须定义用户关系,如下所示:
public function blogs()
{
return $this->hasmany(Blog::class);
}
然后在博客模型中
public function users()
{
return $this->belongsTo(User::class);
}
在一对多的情况下,需要使用foreach循环。。你在用它吗?你可以使用这个项目来确保你做正确的方法,你需要在中间表中插入记录,也使用UsSerialReluxAudio,如果你这样做了,然后PLZ发布管理员模型并解释你是如何得到更多的记录的。