есть ли неисправный код для сохранения зарегистрированного пользователя в Laravel в моем коде - PullRequest
1 голос
/ 04 июня 2019

Я пытаюсь сохранить зарегистрированного пользователя в таблице выплат. другая функция работает правильно, но я все еще не могу сохранить текущего пользователя в базу данных / таблицу. до сих пор я уже пытался использовать этот код в магазине функций

$pay = new Pay;
$pay->cde_user = Auth::user()->id;

ниже подробный код из моего PayController:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use DB;
use App\Contract;
use App\Pay;
use App\User;
use Auth;

class PayController extends Controller
{
    public function index()
    {
        $pay = Pay::latest()->paginate(5);

        return view('pay.index',compact('pay'))
            ->with('i', (request()->input('page', 1) - 1) * 5);

    }

    public function create()
    {
        $contract = Contract::all();
        return view('pay.create', compact('contract'));
    }

    public function store(Request $request)
    {
        $request->validate([
            'cde_contract',
            'party1' => 'required',
            'party2' => 'required',
        ]);

        $pay = new Pay;
        $pay->cde_user = Auth::user()->id;

        Pay::create($request->all());

        return redirect()->route('pay.index')
                        ->with('success','STORED');

    }

    public function edit(Pay $pay)
    {
        return view('pay.edit',compact('pay'));
    }

    public function update(Request $request, Pay $pay)
    {
        $request->validate([
            'cde_contract',
            'party1' => 'required',
            'party2' => 'required',
        ]);

        $pay->update($request->all());
        return redirect()->route('pay.index')
                        ->with('success','PAY UPDATED');
    }

    public function destroy(Pay $pay)
    {
        $pay->delete();
        return redirect()->route('pay.index')
        ->with('success','PAY DELETED');
    }
}

есть ли ошибка в моем магазине и функция обновления? как сохранить текущего зарегистрированного пользователя, используя laravel. Я искал ничего не работает.

попытаться сохранить идентификатор пользователя в отображаемом поле

Ответы [ 2 ]

1 голос
/ 04 июня 2019

В функции магазина вы должны решить, собираетесь ли вы использовать метод create() или new Pay, а затем метод save():

$pay = new Pay;
$pay->cde_user = Auth::user()->id;
$pay->cde_contract = $request->cde_contract;
$pay->party1 = $request->party1;
$pay->party2 = $request->party2;
$pay->save();

или

$data = $request->all();
$data['cde_user'] = Auth::user()->id;
Pay::create($data);

А в функции обновления вам нужно добавить user-> id к данным, которые вы хотите обновить:

$data = $request->all();
$data['cde_user'] = Auth::user()->id;
$pay->update($data);
0 голосов
/ 04 июня 2019

Да, вот небольшая ошибка, которую вы сделали в функции магазина

Решение 1:

 public function store(Request $request)
    {
        $request->validate([
            'cde_contract',
            'party1' => 'required',
            'party2' => 'required',
        ]);

        $pay = new Pay;
        $pay->cde_user = Auth::user()->id;

        $pay->save(); /* correction, remove Pay::create(... line from your code */

        return redirect()->route('pay.index')
                        ->with('success','STORED');

    }

Решение 2: Примечание. Убедитесь, что вы определили все поля в Pay Заполняемом массиве модели.

 public function store(Request $request)
    {
        $request->validate([
            'cde_contract',
            'party1' => 'required',
            'party2' => 'required',
        ]);


        $data = $request->all();
        $data["cde_user"]  = Auth::user()->id;
        Pay::create($data);

        return redirect()->route('pay.index')
                        ->with('success','STORED');

    }
...