问题1:无法更新关系表配置文件的记录。最后出现以下错误。
Illumb\Database\QueryException
=2020-03-30 08:48:51,其中
SQLSTATE[42S22]:未找到列:“字段列表”中的1054未知列“用户id”(SQL:update用户
设置用户id
=132,用户
更新时间id
=132)
我有两个表users
和profiles
,其模式如下
Schema::create(
'users',
function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('username')->unique();
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password')->nullable();
$table->enum('role', ['super', 'admin', 'manager', 'subscriber', 'user'])->default('user');
$table->boolean('is_root')->default(FALSE);
$table->rememberToken();
$table->timestamps();
$table->unique(['username', 'email'], 'users_unique_credentials');
}
);
Schema::create('profiles', function (Blueprint $table) {
$table->bigIncrements('id');
$table->bigInteger('user_id')->unsigned();
$table->string('key', 191);
$table->longText('value')->nullable();
$table->foreign('user_id', 'profile_uid_fk')
->references('id')
->on('users')
->onDelete('cascade');
$table->unique(['user_id', 'key'], 'profile_unique_key');
});
public function profiles()
{
return $this->hasMany(Profile::class)->orderBy('id');
}
public function user()
{
return $this->belongsTo(User::class);
}
public function update(UserRequest $request, User $user)
{
$user->email = $request->email;
$user->role = $request->role;
if ($request->has('password')) {
$user->password = Hash::make($request->password);
}
$user->save();
$user->profile()->save($user);
}
问题2:用户id
是表单中的一个隐藏字段。但是,我更愿意从控制器传递它。有什么办法吗?
array:15 [▼
"_token" => "O3Ardvzz7QvAsYa7aUWn4dbJx1qpCsScykD1fh1S"
"_method" => "PUT"
"email" => "newage@test.com"
"password" => null
"password_confirmation" => null
"role" => "subscriber"
"first_name" => "John"
"last_name" => "doe"
"city" => "Ahmedabad"
"mobile" => "545466555"
"facebook" => "https://facebook.com/profile/pp"
"twitter" => "https://twitter.com"
"youtube" => null
"instagram" => null
"user_id" => "132"
]
您需要将用户控制器中的查询更改为:
$user->profile()->create($user->toArray())->save();
您还可以看到这个示例
我有一个问题,我无法用文档解决。 我想在两个用户之间创建一个非常简单的对话系统。 我有3个模型和表: 用户id、名称 会话 id 消息 id,user_id,conversation_id,内容 因此,一条消息属于一个用户和一个对话,但我希望对话属于多个用户。 我不知道怎么用桌子做这个。如果我在对话表中创建一个字段,我不能有多个用户。。。
我有表,和透视表。表只有两个字段和。 当我添加一个问题时,它还会将相应的值插入透视表。 假设我更改表单中的问题标记并保存,它应该更新透视表的值。如何更新透视表?我是拉威尔的新手。我试过类似的东西 但在我的例子中,pivot表中并没有额外的属性 问题模型 标签模型
我有2个具有1:(0或1)关系的表,例如: 表1-学生 表2-学生地址 并非每个学生都有地址(例如) 我想更新这两个表,更新学生,如果存在相对行student_address-更新也student_address。
您好,当我更新或删除API中的数据时,我需要有关laravel 8多对多关系透视表的帮助。这些是我的文件信息。首先,我创建了两个表:Companies(迁移文件) 联系人(迁移文件) 在此之后,创建透视表company\u contact(迁移文件) 模型如下所示:公司模型 } 联系人模型 } 我的路线文件 我的公司控制人 } 公司存储请求 公司资源 也许有人可以帮助我在公司控制器中编写正确的st
我正在学习拉威尔,有一件事我无法解决。 我有什么: 用户、帖子、评论及相应模型表 使用者php:
我是Laravel5.2的新手,正在开发一个遗留系统,对雄辩有点困惑,希望有人能给我代码。 共有3个表格: 卡片类别卡片2类 卡片可以是许多类别的一部分,这些类别保存在cards2cat表中。 cards2cat表的结构如下 id(主键)图像(卡)类别 我想做的是在Cards模型中有一个方法,名为getCardsWithCategors,它返回Cards信息和category表中类别的名称。 ca