首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用一对多的关系在Laravel中保存所选列表?

如何使用一对多的关系在Laravel中保存所选列表?
EN

Stack Overflow用户
提问于 2016-07-07 15:43:46
回答 1查看 868关注 0票数 1

我在考虑如何在表用户中保存用户选择的列表?如果用户选择第一个选项,则值将插入到我的role_id中,值为1,依此类推。

代码语言:javascript
运行
复制
<div class = "form-group {{ $errors->has('role') ? ' has-error' : '' }}">

<label for = "role" class = "control-label">Role</label>

<select class = "form-control" name = "role">

    <option selected disabled>Please select role</option>
    <option value = "role1">Supplies Officer</option>
    <option value = "role2">Admin Officer</option>
    <option value = "role3">Attorney</option>
    <option value = "role4">Chairman</option>

</select>

 @if ($errors->has('role'))
    <span class = "help-block">{{ $errors->first('role') }}</span>
 @endif

示例SQL:

代码语言:javascript
运行
复制
INSERT INTO `users`(`role_id`, `email`, `username`) VALUES (1,'francis@gmail.com','francis')

我有一个表角色,用户表有一对多的关系。

角色表:我已经在这里插入了一个值。

用户(模型)

代码语言:javascript
运行
复制
class User extends Model implements AuthenticatableContract
{
use Authenticatable;

protected $table = 'users';

protected $fillable = [
    'username',
    'email',
    'password',
    'role_id',
];

public function role()
{
    return $this->belongsTo('Role');
}
}

作用(模式):

代码语言:javascript
运行
复制
class Role extends Model
{
protected $table = 'roles';

public function user()
{
    return $this->hasMany('User');
}
}

主计长:

我在这里仍然不知道如何插入或保存所选的列表。任何帮助都将不胜感激!

代码语言:javascript
运行
复制
public function postRegister(Request $request)
{
    $this->validate($request, [
                            //This will be unique in users table
        'email' => 'required|unique:users|email|max:255',
        'username' => 'required|unique:users|alpha|max:20',
        'password' => 'required|min:6',
        'role' => 'required',
    ]);

    $email = $request['email'];
    $username = $request['username'];
    $password = bcrypt($request['password']);
    $role = $request['role'];

    $user = new User();
    $user->email = $email; //Accessing properties of Model
    $user->username = $username;
    $user->password = $password;


    $user->save();

}
EN

回答 1

Stack Overflow用户

发布于 2016-07-07 15:56:09

将role_id传递给User对象。

代码语言:javascript
运行
复制
$user->role_id = 1;
$user->save();

现在您的角色被分配给您的用户。您可以检查您的SQL数据库或在$user变量上创建一个dd()。

代码语言:javascript
运行
复制
dd($user);

你可以给它口才,这是一个更好的方法。

代码语言:javascript
运行
复制
$role = \Role::findOrFail($request['role_id']);
$role->user()->assign($user)->push(); // This ligne assign the id of the Role Model into the User Model automaticly.

在这种情况下,角色模型必须在用户模型上具有belongsTo关系。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38249820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档