【问题标题】:how to update pivot table which has more than 1 pivot column如何更新具有超过 1 个数据透视列的数据透视表
【发布时间】:2019-08-21 18:45:32
【问题描述】:

我有 3 张桌子; periodesantriperiode_santri(数据透视表)。我想更新它时遇到了麻烦,因为我有不止一个列枢轴

我的控制器是这样的:

public function editangka(Request $request, $id)
{
    $santri = Santri::find($id);
    $data = [
        'kbm_h'=>$request->value1,
        'kbm_i'=>$request->value2,
        'kbm_a'=>$request->value3,
        'kbm_t'=>$request->value4,
        'kbm_s'=>$request->value5,
        'kbm_ct_ss'=>$request->value6,
        'kbm_jum_sam'=>$request->value7,
        'kbm_min'=>$request->value8,
        'kgt_h'=>$request->value9,
        'kgt_i'=>$request->value10,
        'kgt_a3_a5'=>$request->value11,
        'kgt_a4_a6'=>$request->value12,
        'kgt_d3'=>$request->value13,
        'kgt_a8'=>$request->value14,
        'kgt_t'=>$request->value15,
        'kgt_nomin'=>$request->value16,
        'kgt_jum_sam'=>$request->value17,
        'kgt_min'=>$request->value18,
        'pkt_yes'=>$request->value19,
        'pkt_no'=>$request->value20,
        'pkt_total'=>$request->value21,
        'pkt_min'=>$request->value22,
        'pu_kode'=>$request->value23,
        'pu_min'=>$request->value24,
        'tot_min_kbm'=>$request->value25,
        'tot_min_kgt'=>$request->value26,
        'tot_min_pkt'=>$request->value27,
        'tot_min_pu'=>$request->value28, 
        'saldo_poin'=>$request->value29, 
        'ket'=>$request->value30
    ];
    $santri->periode()->UpdateExistingPivot($request->pk, $data);
}

那么,我得到的消息是这样的:

"line": 55,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->"
},enter code here
{
"file": "C:\\xampp\\htdocs\\pipastibisa\\server.php",
"line": 21,
"function": "require_once"
}
]
}

【问题讨论】:

    标签: php laravel laravel-5 many-to-many pivot-table


    【解决方案1】:

    您将多个单元素数组传递给 UpdateExistingPivot() 方法,而它应该只有一个作为第二个参数。

    这是方法签名:

    public function updateExistingPivot($id, array $attributes, $touch = true) {/** ... */}
    

    如您所见,第一个参数是键,第二个参数是一个数组,其中包含要更新的所有枢轴数据。最后一个参数是触摸(更新updated_at 字段)父模型。

    让我帮你修好:

    public function editangka(Request $request, $id)
    {
        $data = [
            'kbm_h' => $request->value1,
            'kbm_i' => $request->value2,
            'kbm_a' => $request->value3,
    
             // ... all of your fields..
    
            'ket'   => $request->valueN
        ];
    
        $santri->periode()->UpdateExistingPivot($request->pk, $data);
    }   //                                                    ^^^^^
    

    【讨论】:

    • 对不起先生,但它不起作用,我收到这样的消息:“line”:55,“function”:“handle”,“class”:“Illuminate\\Foundation\\Http \\Kernel", "type": "->" }, { "file": "C:\\xampp\\htdocs\\pipastipisa\\server.php", "line": 21, "function": "需要一次" } ] }
    • @SatriaChasana 您能否更新您的问题以查看您遇到的错误?这可能是一个错字,这应该可以。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    • 2013-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多