php - Laravel 中一个 Controller 的两个模型(方法编辑和更新)

标签 php laravel

请告诉我这个 Controller SerieController 是否正确?因为我不这么认为。 实际上有两种模式。一个模型是 Serie,另一个是 Mark

当我点击下拉列表时,我没有看到我的项目...

enter image description here

public function edit($id)
    {
        $series = Serie::with('marks')->find($id);
        return view('admin.series.edit', compact('series'));
    }



    public function update(Request $request, $id)
    {
        $request->validate([
                'name' => 'required',
                'fk_mark' => 'required'
        ]);
    
        $series = Serie::with('marks')->find($id);
        $series->name = $request->get('name');
        $series->fk_mark = $request->get('fk_mark');
        $series->save();
        return redirect()->route('series.index')
                  ->with('success', 'updated successfully');
    }

我的 edit.blade.php

<form class="panel-body" action="{{route('series.update',$series->id)}}" method="POST">
<input name="_method" type="hidden" value="PATCH">
@csrf
<fieldset class="form-group">
<label for="form-group-input-1">Name</label>
<input type="text" name="name" class="form-control" id="form-group-input-1" value="{{$series->name}}">
</fieldset>
    
<div class="form-group">
<label for="company-content">Select Mark</label>
<select name="fk_mark" id="" class="form-control">
@foreach($series->marks as $mark)
<option value="{{$mark['id']}}">{{$mark['name_mark']}}</option>
@endforeach
</select>
</div>

关于模型

型号系列

class Serie extends Model
{

    protected $fillable = ['name', 'fk_mark'];

    public function marks(){

        return $this->belongsTo('App\Mark', 'fk_mark');
       
    }

}

模型标记

class Mark extends Model
{

    protected $fillable = ['name_mark'];
    
    public function series(){
        return $this->hasMany('App\Serie', 'fk_mark');
    }

    
    public function cars(){
     return $this->hasMany('App\Car','fk_serie');
   }

}

提前谢谢你。

最佳答案

在您的编辑功能中,您必须这样做:

public function edit($id)
{
     $series = Serie::with('marks')->find($id);
     return view('admin.series.edit', compact('series'));
}

在您的blade中,您将像这样获取标记:

$series->marks->name_mark;

update函数更新两个表的数据是同一个方法。

希望对您有所帮助。

关于php - Laravel 中一个 Controller 的两个模型(方法编辑和更新),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55075987/

相关文章:

php - 根据另一个转发器值获取高级自定义字段转发器字段值

php - 是什么导致服务器出现 60,000 毫秒的延迟

java - 将 MD5Bytes 和 getBytes Java 代码转换为 PHP

php - 使用Gradle将Scp Php文件导入服务器

php - Kubernetes:如何在持久卷中使用 php (Laravel) 应用程序并在拉取新镜像时更新代码更改

php - mysql 如何使用查询获取 varchar 字段中的数据类型。因为它可以将任何数据类型保存为字符串

php - 使用 PUT 方法 AJAX 导致 Laravel 6 中的 $request->all() 数组为空

php - SQLSTATE[23000] : Integrity constraint violation: 1052 Column 'created_at' in order clause is ambiguous Laravel 5. 5

php - Laravel leftJoin 错误从空值创建默认对象

php - 在 Laravel 的 Gmail 中找不到图像