【问题标题】:i want to get user_id when form is been submitted please i'm new to php and laravel我想在提交表单时获取 user_id 请我是 php 和 laravel 的新手
【发布时间】:2022-11-20 01:58:33
【问题描述】:

在我的代码中,我想在用户提交表单时获取 user_id 并将其添加到 user_id Colum

public function store(Request $request, $id)
    {
        $request->validate([
            'user_id' => Auth::id(),
            'rec_acc_name' => 'required',
            'swift_code' => 'required',
            'rou_no' => 'required',
            'rec_bank_add' => 'required',
            'trans_amou' => 'required',
            'remarks' => 'required',
            
            
        ]); 
    
        Transfer::create($request->all(), );
     

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    您可以尝试此解决方案。

    Use DB;
    Use Auth;
    
    public function store(Request $request, $id)
        {
            $request->validate([
       
                'rec_acc_name' => 'required',
                'swift_code' => 'required',
                'rou_no' => 'required',
                'rec_bank_add' => 'required',
                'trans_amou' => 'required',
                'remarks' => 'required',
                
                
            ]); 
    
         DB::table('transfers')->insert([
             'user_id' => Auth::id(),
             'rec_acc_name' => $request->rec_acc_name,
             'swift_code' => $request->swift_code,
             'rou_no' => $request->rou_no,
             'rec_bank_add' => $request->rec_bank_add,
             'trans_amou' => $request->trans_amou,
             'remarks' => $request->remarks,
           ]);
    
    }
    
    

    【讨论】:

    • 我收到一个错误(SQLSTATE[HY000]:一般错误:1364 字段'rec_acc_no'没有默认值插入transfersuser_idrec_acc_nameswift_coderou_norec_bank_add , trans_amou, remarks) VALUES (2, jerry, dicvj fckl, 32-043-, 11 POR)
    • 如果数据库表中有 rec_acc_no 字段,则可以将 'rec_acc_name' => $request->rec_acc_name 替换为 'rec_acc_no' => $request->rec_acc_name。
    【解决方案2】:

    使用 $request->all() 只会提交请求中的字段。

    你可以去

    Transfer::create([
        'user_id' => Auth::id(),
         'rec_acc_name' => $request->rec_acc_name,
          ...
    
    ]);
    

    或者,添加 $request->request->add(["user_id" => Auth::id()]);以上创建()

    题外话:我会避免使用第二种方法,因为您依赖于用户输入的字段。

    假设您有用户不可编辑的列,即布尔类型的 transfer_paid;用户可以添加 name="transfer_paid" 的 HTML 输入元素并发送值 1。$request-all() 也会更新该列。

    【讨论】:

    • 传输表属于用户表(我的意思是一对多关系),如果不添加 user_id 就无法创建
    • 它抛出一个错误
    • 我已经更新了我的答案。而不是 rec_acc_name 下面的“...”,而是添加您希望保存的 $request 中的所有输入。即 'swift_code' => $request->swift_code
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-21
    • 2019-06-11
    • 2016-04-02
    • 2017-10-10
    • 1970-01-01
    • 2015-12-12
    相关资源
    最近更新 更多