Как исправить неправильный вызов метода «Метод App \ Http \ Controllers \ TransactionsController :: Transfer не существует». в laravel - PullRequest
0 голосов
/ 18 апреля 2020

У меня проблема с созданием новой учетной записи Transaction, и мне возвращают ошибку метода App \ Http \ Controllers \ TransactionsController :: Transfer не существует в TransactionsController

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use App\Http\Requests\TransactionsRequest;
use App\Traits\MakeTransactions;
use App\User;
use App\Transaction;
use DB;

class TransactionsController extends Controller
{
    public function create()
    {
        $accno = auth()->user()->accno;

        $account = DB::table('users')
            ->join('accounts', 'users.accno', '=', 'accounts.accno')
            ->select('users.*', 'accounts.*')
            ->get();

        return view('dashboard.user.make_a_transfer.create', compact('account'));
    }

    public function store(TransactionsRequest $requestFields,$id)
    {   
        $transactions = $this->Transfer($requestFields);

        $account = Account::find($id);

        $bal = $account->amt_paid + $transctions->amt;
        $account->total = $bal;
        $account->save(); 

        return redirect('/make_transfer')->with('success', 'Transaction has been made');
    }

    public function saveTransaction($data)
    {   

        return true;

    }
}

, но в переводе ($ requestFields) я ссылаюсь на Traits / MakeTransactions. php

<?php

namespace App\Traits;

use App\User;
use App\Transactions;

trait MakeTransactions
{
    public function Transfer($fields)
    {
        $transaction = Transaction::create([
            'accno' => $user->accno,
            'username' => auth()->user()->accno,
            'reciever_name'      => $fields->reciever_name,
            'reciever_bank'      => $fields->reciever_bank,
            'reciever_accno'      => $fields->reciever_accno,
            'routing_no'     => $fields->routing_no,
            'amt'     => $fields->amt,
            'fund_option'     => $fields->fund_option,
            'description'     => $fields->description,
        ]);

        return $transaction;
    }
}

Мне нужна помощь в понимании того, как создавать новую транзакцию каждый раз, когда пользователь выполняет перевод и обновляет учетную запись $. -> всего , добавив $ account-> amt_paid и $ transctions-> amt $ bal на сайте. Модель транзакции имеет много отношений с пользователем.

1 Ответ

1 голос
/ 18 апреля 2020

Вы не включили свою Черту, поэтому вам нужно включить ее:

use App\Traits\MakeTransactions;

class TransactionsController extends Controller
{ 
    use MakeTransactions;

    public function create()
    {
       ....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...