Laravel 7 使用 request->route('id) 分配 foreignID?

Posted

技术标签:

【中文标题】Laravel 7 使用 request->route(\'id) 分配 foreignID?【英文标题】:Laravel 7 assigning foreignID using request->route('id)?Laravel 7 使用 request->route('id) 分配 foreignID? 【发布时间】:2020-09-03 06:58:34 【问题描述】:

我正在尝试向商店功能提交表单。问题是,foreignKey (degree_id) 一直被设置为 ?(null),即使我将它设置为路由中的 id。

表格:

  !! Form::open(['url' => 'degrees/ $Degree->id ', 'method' => 'POST']) !!
                  <div class="form-group">
                    Form::label('title', 'Title')
                    <br>
                    Form::text('title', '', ['class' => 'form-control', 'placeholder' =>      'Title'])
                  </div>
                  @error('title')
                    <small class="text-danger"> $message </small>
                  @enderror

路线:

Route::post('degrees/degree', 'ModuleController@store');

存储功能:

public function store(Request $request)
    
      $this->validate($request, [
        'title' => 'required',
        'desc' => 'required',
        'long_desc' => 'required',
        'hours' => 'required',
        'credits'=> 'required',
      ]);

      $module = new Module;
      $module->title = $request->input('title');
      $module->desc = $request->input('desc');
      $module->long_desc = $request->input('long_desc');
      $module->hours = $request->input('hours');
      $module->credits = $request->input('credits');
      $module->degree_id = $request->route('id');
      $module->save();

      return redirect('/home/modules');



我已经将 degree_id 设置为可为空,因此我可以创建我的模块并让它正常显示,但对于未来的功能,我希望将其设置为 degree_id。知道什么在这里不起作用吗?我确实建立了模型关系,但我看不出这会如何影响它。也许路线本身有什么东西?

【问题讨论】:

【参考方案1】:

您不能在 php 元素中使用 Blade Mustache,请改用它:

!! Form::open(['url' => 'degrees/' . $Degree->id , 'method' => 'POST']) !!

【讨论】:

【参考方案2】:

您的路由参数未命名为id,您在路由定义中将其声明为名称degree ('degrees/degree')。

$request->route('degree');

【讨论】:

【参考方案3】:

改变路线

Route::post('degrees/degree', 'ModuleController@store');

                        TO

Route::post('degrees/id', 'ModuleController@store');

【讨论】:

以上是关于Laravel 7 使用 request->route('id) 分配 foreignID?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 7.5 发布

Laravel 5.7 按日期搜索

测试 Laravel Controller 的 try catch

Laravel 5.7 - 多对多关系 - 选择具有提供的类型 ID 数组的电影

无法使用 $request->ajax() 和 Laravel 5.4 检查请求是不是为 ajax

Laravel 5.7 - 上传到公共文件夹