Php laravel-数据库未更新
欢迎光临!我制作了一个简单的应用程序,用户有自己的笔记。我正在使用外键和关系(belongsTo,hasMany)。当我添加新便笺并选择它所属的用户时,这是可以的,但当我尝试更新它时,除了用户之外,所有内容都会更改 试点模式:Php laravel-数据库未更新,php,mysql,laravel,Php,Mysql,Laravel,欢迎光临!我制作了一个简单的应用程序,用户有自己的笔记。我正在使用外键和关系(belongsTo,hasMany)。当我添加新便笺并选择它所属的用户时,这是可以的,但当我尝试更新它时,除了用户之外,所有内容都会更改 试点模式: class Pilot extends Model { protected $table = 'pilots'; /** * The attributes that are mass assignable.
class Pilot extends Model
{
protected $table = 'pilots';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'phone', 'email',
];
public function note() {
return $this->hasMany(Note::class);
}
}
注:型号:
class Note extends Model
{
protected $table = 'notes';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'data', 'zadanie', 'uwagi', 'pilot_id',
];
public function pilot() {
return $this->belongsTo(Pilot::class);
}
}
Notes控制器(存储编辑和更新功能)
编辑刀片:
<div class="panel panel-transparent">
{!! Form::model($note, ['method' => 'PATCH','route' => ['uwagi.update', $note->id]]) !!}
<div class="panel-heading">
<div class="panel-title">Dodaj Uwagę
</div>
</div>
<div class="panel-body">
<h3>Wybierz ucznia oraz dodaj do niego uwagę</h3>
<p>Wszystkie pola są wymagane</p>
<br>
<div>
</div>
</div>
</div>
</div>
<div class="col-sm-7">
<div class="panel panel-transparent">
<div class="panel-body">
{!! Form::open(array('route' => 'uwagi.store','method'=>'POST')) !!}
<p>Dane</p>
<label>Pilot</label>
<select class="form-control" id="pilot" name="pilots">
@foreach($pilots as $pilot)
<option value="{!! $pilot->id !!}">
{!! $pilot->name !!}
</option>
@endforeach
</select>
</div>
<div class="row clearfix">
<div class="col-sm-6">
<div class="form-group form-group-default required">
<label>Data</label>
{!! Form::date('data', null, array('placeholder' => 'Data','class' => 'form-control ')) !!}
</div>
</div>
<div class="col-sm-6">
<div class="form-group form-group-default required">
<label>Zadanie</label>
{!! Form::text('zadanie', null, array('placeholder' => 'Zadanie','class' => 'form-control ')) !!}
</div>
</div>
<div class="col-sm-6">
<div class="form-group form-group-default required">
<label>Uwagi</label>
{!! Form::textarea('uwagi', null, array('placeholder' => 'Uwagi','class' => 'form-control ')) !!}
</div>
</div>
</div>
</div>
<br>
<button class="btn btn-success btn-cons m-b-10" type="submit"><i class="fa fa-floppy-o" aria-hidden="true"></i> <span class="bold">Dodaj</span></button>
<a href="{{ route('pilot') }}"><button class="btn btn-info btn-cons m-b-10" type="button"><i class="fa fa-arrow-left"></i> <span class="bold">Powrót</span>
</button></a>
{!! Form::close() !!}
</div>
{!!Form::model($note,['method'=>'PATCH','route'=>['uwagi.update',$note->id]])
多达吉·乌瓦格ę
Wybierz ucznia oraz dodaj do niego uwagę
伊斯茨基·波拉·斯维马根酒店
{!!Form::open(数组('route'=>'uwagi.store','method'=>'POST'))
丹麦人
领航员
@foreach($pilots作为$pilot)
{!!$pilot->name!!}
@endforeach
资料
{!!Form::date('data',null,数组('placeholder'=>'data','class'=>'Form control'))
扎达尼
{!!Form::text('zadanie',null,数组('placeholder'=>'zadanie','class'=>'Form control'))
乌瓦吉
{!!Form::textarea('uwagi',null,array('placeholder'=>'uwagi','class'=>'Form control'))
多达伊
{!!Form::close()!!}
它改变了除了飞行员之外的一切
问候并感谢您的帮助在您的更新功能中,您没有获得Notes对象。是吗
Note::find($id);
改为这样做
$note = Note::find($id);
$note->pilot_id = $request->pilots;
$note->save(); // $note->update();
此外,在您的视图中,您可以打开表单两次,一次使用Form::model()
(不关闭),然后使用Form::open()
您需要使用单独关闭每个表单
{!! Form::close() !!}
此外,您仅在表单::open中定义了一次select
。您还需要将其添加到表单::model()中
在更新函数中,您没有得到note对象。是吗
Note::find($id);
改为这样做
$note = Note::find($id);
$note->pilot_id = $request->pilots;
$note->save(); // $note->update();
此外,在您的视图中,您可以打开表单两次,一次使用Form::model()
(不关闭),然后使用Form::open()
您需要使用单独关闭每个表单
{!! Form::close() !!}
此外,您仅在表单::open中定义了一次select
。您还需要将其添加到表单::model()中
您是否关闭了第二张表单?我认为您不需要指定方法,因为它是模型绑定
。您的更新函数在哪里?@eddythedove check update您关闭了第二个表单吗?我认为您不需要指定方法,因为它是模型绑定
。您的更新函数在哪里?@eddythedove check update