当我尝试创建新用户时,我无法

时间:2020-09-03 01:34:52

标签: php laravel laravel-6 laravel-7

我尝试使用表Perfiles(profiles)中的前导密钥创建名为Usuarios(Users)的CRUD,该前导密钥是Profiles中的ID,但是我不知道如何使用select < / strong>

这是我的FORM.BLADE.PHP

<select name="idPerfil" id="idPerfil" class="form-control">
        <option value="">Eliga un nombre de perfil </option>
    @foreach ($perfiles as $perfil)
    
    <option value="{{ $perfil['id'] }}" 
    
 @if ($perfil->id === $usuario->idPerfil)
    selected
        
    @endif
    
    > {{ $perfil['NombrePerfil'] }}
        
    </option>      
        @endforeach
        </select>

PerfilesContoller.php

 public function edit($id)
{
    
    $perfil= Perfiles::findOrFail($id);

    return view('perfiles.edit',compact('perfil'));
}

公共函数create() {

    return view('perfiles.create');

}

这是我的USUARIOSCONTROLLER.PHP

public function create()
    {
        //
        $perfiles = Perfiles::all();

        return view('usuarios.create',compact('perfiles'));
    }

公共功能编辑($ id) { //

        $usuario= Usuarios::findOrFail($id);
        $perfiles = Perfiles::all();

        return view('usuarios.edit',compact('usuario','perfiles'));
    }

表Pefiles

public function up()
{
    Schema::create('perfiles', function (Blueprint $table) {

        $table->increments('id');
        $table->string('NombrePerfil')->unique();
        $table->timestamps();
        
    });
}

表用法

 public function up()
{
    
    
    Schema::create('usuarios', function (Blueprint $table) {
        $table->increments('id');
        $table->unsignedInteger('idPerfil');
        $table->string('Nombre');
        $table->string('UserName')->unique();
        $table->string('Email')->unique();
        $table->string('Password');
        $table->foreign('idPerfil')->references('id')->on('perfiles');
        $table->rememberToken();
        $table->timestamps();
    });
}

1 个答案:

答案 0 :(得分:0)

对于初学者来说,我认为您访问主键就像perfil在某个时刻是一个数组,然后在另一个地方将其视为一个对象,您可以这样做:$perfil['id']而不是:{ {1}}。尝试像这样构造刀片:

$perfil->id