我正在为 Laravel 使用背包,并且我正在尝试在多对多关系中使用的数据透视表中添加/更新一些额外的列。
总结上下文:我有一个模型Task,另一个模型Machine和这个中间数据透视表machine_task包含 Task 和 Machine 之间的多对多关系
在此 machine_task 中,有machine_id、task_id和布尔列m(用于“每月”)、q(用于“季度”)、b(用于“一年两次”)和y(用于“每年”)。
这就是我所拥有的
在我的Models/Task.php 中,我定义了 m-2-m 关系
public function machines()
{
return $this->belongsToMany('App\Machine')->withPivot('m','q','b','y');
}
Run Code Online (Sandbox Code Playgroud)
在/app/Http/Controllers/Admin/TaskCrudController.php我有字段,最相关的是这个
$this->crud->addField([ // n-n relationship
'label' => "Machines", // Table column heading
'type' => "select2_from_ajax_multiple_custom", // a customized field type modifying the standard select2_from_ajax_multiple type
'name' => 'machines', // the column that contains the ID …Run Code Online (Sandbox Code Playgroud) 在 embarcadero docwiki 中,它说:
在除 TDBGrid 之外的所有数据控件中,当您修改字段时,当您从控件中按 Tab 键时,修改将复制到基础数据集。如果在从字段中使用 Tab 键之前按 Esc 键,数据控件将放弃修改,并且该字段的值将恢复为进行任何修改之前的值。在 Vcl.DBGrids.TDBGrid 中,当您移动到不同的记录时会发布修改
我正在使用 TDBGrid(以及其他数据控件),我发现他的更新行为非常不自然。我希望在用户点击“ENTER”时进行更新,而不仅仅是当用户“移动到不同的记录”或“控件中的 Tab”时。
我的问题是我怎么能改变这个?有任何想法吗?
先感谢您。