douan1893 2019-04-25 03:28
浏览 116

Laravel错误:参数1传递给App \ Services \ Booking \ BookingService :: save()必须是App \ Http \ Requests \的实例

How to fix the error:

Argument 1 passed to App\Services\Booking\BookingService::save() must be an instance of App\Http\Requests\StoreBookingRequestType, instance of Illuminate\Http\Request given, called in C:\xampp_n\htdocs\get-served-admin\app\Http\Controllers\BookingController.php on line 75.

I keep getting the error when I try to save a booking.

in the app\Services\Booking\BookingService.php

/**
     * Save Booking to database
     *
     * @param StoreBookingRequestType $request
     * @return string
     */
    public function save(StoreBookingRequestType $request)
    {
        DB::beginTransaction();

        try {

            $request['user'] = $request->get('user_id');

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

        } catch (\Exception $e) {

            DB::rollback();

            Log::error('Booking Error: Storing New Record - '.$e->getMessage());

            return BookingResponseType::ERROR;
        }

        DB::commit();

        return BookingResponseType::SUCCESS;
    }

in the controller app\Http\Controllers\BookingController.php

namespace App\Http\Controllers;

use App\Booking;
use App\Client;
use App\Enums\BookingResponseType;
use App\PaymentMethod;
use App\PaymentStatus;
use App\Services\Booking\BookingService;
use App\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

class BookingController extends Controller{
    private $payment_methods;
    private $payment_statuses;
    private $clients;
    private $users;
    private $booking_service;
    private $booking_service;

    public function __construct()
    {
        view()->share('page_title','Bookings');

        $this->payment_methods  = PaymentMethod::all()->pluck('name','id');
        $this->payment_statuses = PaymentStatus::all()->pluck('name','id');
        $this->clients          = Client::all()->pluck('fullname','id');
        $this->users            = User::all()->pluck('fullname','id');

        $this->booking_service  = new BookingService();
    }


    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return BookingResponseType
     */
    public function store(Request $request)
    {
        DB::beginTransaction();

        try {

            $action = $this->booking_service->save($request);

            if($action=="Success") {
                flash('Record has been successfully saved.')->success();
            } else {
                flash('Error');
            }

        } catch (\Exception $e) {

            DB::rollback();

            flash('Error: '.$e->getMessage())->error();

            return redirect()->back()->withInput($request->all());
        }

        DB::commit();

        return redirect()->back();
    }
}
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 求学软件的前人们指明方向🥺
    • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
    • ¥15 MCNP里如何定义多个源?
    • ¥20 双层网络上信息-疾病传播
    • ¥50 paddlepaddle pinn
    • ¥20 idea运行测试代码报错问题
    • ¥15 网络监控:网络故障告警通知
    • ¥15 django项目运行报编码错误
    • ¥15 STM32驱动继电器
    • ¥15 Windows server update services