Laravel 更新「;“用户”;及;“技术专家”;一对一连接

Laravel 更新「;“用户”;及;“技术专家”;一对一连接,laravel,laravel-5,laravel-5.2,laravel-5.1,Laravel,Laravel 5,Laravel 5.2,Laravel 5.1,我有两个表user和technology,一对一连接,technology继承自user。通过编辑表单编辑技师信息并保存后,用户和技师表上不会发生更新。也没有错误 这是我的密码: 控制器 public function edit($id) { $technicien=technicien::find($id); $user = $technicien->user; return view('technicien.edit',['technicien'=>$te

我有两个表user和technology,一对一连接,technology继承自user。通过编辑表单编辑技师信息并保存后,用户和技师表上不会发生更新。也没有错误

这是我的密码:

控制器

public function edit($id)
{
    $technicien=technicien::find($id);
    $user = $technicien->user;
    return view('technicien.edit',['technicien'=>$technicien])->with('user',$user);
}

public function update(Request $request, $id)
{
    // do some request validation

    $technicien=technicien::find($id);
    $technicien->update($request->all());
    $technicien->user->update($request->get('user'));
    $user->nom = $request->update('nom');

    return redirect('/technicien');
    }
看法

模型1

<?php

namespace App;

 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Database\Eloquent\SoftDeletes;
class technicien extends Model
{
 protected $fillable = [
    'moyenne_avis', 'actif',
];
use SoftDeletes;
protected $guarded = [];
 protected $dates = ['deleted_at'];
    public function zoneintervention()
{
    return $this->belongsToMany('App\zoneintervention','technicien_zone','technicien_id','zoneintervention_id');

}
    public function metier()
{
    return $this->belongsToMany('App\metier','technicien_metier','technicien_id','metier_id');

}
 public function user()
{
    return $this->belongsTo('App\User');
}

 public function tarificationtache()
 {
    return $this->belongsToMany('App\tarificationtache','technicien_tarificationtache','technicien_id','tarificationtache_id');
  }


}

尝试处理一对一关系。
建立用户表和技师表的关系,然后尝试执行更新。

在控制器中尝试此操作

$user = User::with('technicien')->find($id);
$data['id'] = $id;

$data = $this->validate($request, [
        'moyenne_avis' => 'required',
]);

$user->technicien()->whereUserId($data['id'])->update(['moyenne_avis' => $data['moyenne_avis']
]);

return redirect('/technicien')->with('Success', 'Records updated');
在ur view.blade中也按如下方式更改表单方法

<form action="{{ action('TechnicienController@update', $user->id) }}" method="post">

另外,使用此

注意:控制器和型号名称的表名应为复数。
例如:表名:users 控制器名称:UserController 型号名称:用户
在urs中也要确保这一点

控制器

public function edit($id)
{
// better to use findOrFail (it will throw an exception about missing 
objects)
$technicien = technicien::findOrFail($id);
return view('technicien.edit', compact('technicien'));
}

public function update(Request $request, $id)
{
$technicien=technicien::findOrFail($id);
$technicien->user->update($request->get('user'));
$technicien->update($request->get('technicien'));
return redirect('/technicien');
}
那景色呢

@extends('Layouts/app')
@extends('Layouts.master')
@section('content')
  <div class="container">
     <div class="row">
        <div class="col-md-10">
            <h1>Modifier Technicien</h1>
            <form action="{{ route('technicien.update', $technicien ) }}"         
                method="post">
                {{csrf_field()}}
                {{ method_field('patch') }}
                <div class="form-group">
                    <label for="nom">Nom</label>
                    <input id="nom" type="text" class="form-control" 
name="user[nom]" value="{{$technicien->user->nom}}" >
                </div>
                <div class="form-group">
                    <label for="prenom">Prenom</label>
                    <input id="prenom" type="text" class="form-control" 
name="user[prenom]" value="{{$technicien->user->prenom}}" >
                </div>
                <div class="form-group">
                    <label for="prenom">Prenom</label>
                    <input id="prenom" type="text" class="form-control" 
name="user[tel]" value="{{$technicien->user->tel}}" >
                </div>
                <div class="form-group">
                    <label for="prenom">Prenom</label>
                    <input id="prenom" type="text" class="form-control" 
name="user[mobil]" value="{{$technicien->user->mobil}}" >
                </div>
                <div class="form-group">
                    <label for="prenom">Prenom</label>
                    <input id="prenom" type="text" class="form-control" 
name="user[role]" value="{{$technicien->user->role}}" >
                </div>
                <div class="form-group">
                    <label for="prenom">Email</label>
                    <input id="prenom" type="text" class="form-control" 
name="user[email]" value="{{$technicien->user->email}}" >
                </div>
                <div class="form-group">
                    <label for="prenom">Email</label>
                    <input id="prenom" type="text" class="form-control" 
name="user[password]" value="{{$technicien->user->password}}" >
                </div>
                <div class="form-group">
                    <label for="">moyenne Avis</label>
                    <input type="text"  name="technicien[moyenne_avis]" 
class="form-control" value="{{$technicien->moyenne_avis}}" >
                </div>
                <div class="form-group">
                    <label for="">Etat Technicien</label>
                    <input type="text"  name="technicien[actif]" 
 class="form-control" value="{{$technicien->actif}}" >
                </div>

                <div class="form-group">
                    <input type="submit" value="enregistrer" class="form-
 control btn btn-primary">
                </div>
            </form>
        </div>
    </div>
</div>
@endsection
@extends('Layouts/app')
@扩展('Layouts.master')
@节(“内容”)
修饰技术员
{{csrf_field()}}
{{method_字段('patch')}
笔名
普勒农
普勒农
普勒农
普勒农
电子邮件
电子邮件
莫耶恩·阿维斯
技术专家
@端部

你能给我看一下模型吗?你的表名是technicien或technicienesI我添加了两个模型,我的表名是technicienRoute::patch('/technicien/{id}','TechnicienController@update');您的表名不能是technicien,它应该是technicien更改了Conform方法,并且在view.blade.php中添加了隐藏字段,您能解释一下吗?当我更改为发布时,它创建了一个新的technicien并保留了旧的technicien
<form action="{{ action('TechnicienController@update', $user->id) }}" method="post">
public function edit($id)
{
// better to use findOrFail (it will throw an exception about missing 
objects)
$technicien = technicien::findOrFail($id);
return view('technicien.edit', compact('technicien'));
}

public function update(Request $request, $id)
{
$technicien=technicien::findOrFail($id);
$technicien->user->update($request->get('user'));
$technicien->update($request->get('technicien'));
return redirect('/technicien');
}
@extends('Layouts/app')
@extends('Layouts.master')
@section('content')
  <div class="container">
     <div class="row">
        <div class="col-md-10">
            <h1>Modifier Technicien</h1>
            <form action="{{ route('technicien.update', $technicien ) }}"         
                method="post">
                {{csrf_field()}}
                {{ method_field('patch') }}
                <div class="form-group">
                    <label for="nom">Nom</label>
                    <input id="nom" type="text" class="form-control" 
name="user[nom]" value="{{$technicien->user->nom}}" >
                </div>
                <div class="form-group">
                    <label for="prenom">Prenom</label>
                    <input id="prenom" type="text" class="form-control" 
name="user[prenom]" value="{{$technicien->user->prenom}}" >
                </div>
                <div class="form-group">
                    <label for="prenom">Prenom</label>
                    <input id="prenom" type="text" class="form-control" 
name="user[tel]" value="{{$technicien->user->tel}}" >
                </div>
                <div class="form-group">
                    <label for="prenom">Prenom</label>
                    <input id="prenom" type="text" class="form-control" 
name="user[mobil]" value="{{$technicien->user->mobil}}" >
                </div>
                <div class="form-group">
                    <label for="prenom">Prenom</label>
                    <input id="prenom" type="text" class="form-control" 
name="user[role]" value="{{$technicien->user->role}}" >
                </div>
                <div class="form-group">
                    <label for="prenom">Email</label>
                    <input id="prenom" type="text" class="form-control" 
name="user[email]" value="{{$technicien->user->email}}" >
                </div>
                <div class="form-group">
                    <label for="prenom">Email</label>
                    <input id="prenom" type="text" class="form-control" 
name="user[password]" value="{{$technicien->user->password}}" >
                </div>
                <div class="form-group">
                    <label for="">moyenne Avis</label>
                    <input type="text"  name="technicien[moyenne_avis]" 
class="form-control" value="{{$technicien->moyenne_avis}}" >
                </div>
                <div class="form-group">
                    <label for="">Etat Technicien</label>
                    <input type="text"  name="technicien[actif]" 
 class="form-control" value="{{$technicien->actif}}" >
                </div>

                <div class="form-group">
                    <input type="submit" value="enregistrer" class="form-
 control btn btn-primary">
                </div>
            </form>
        </div>
    </div>
</div>
@endsection