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 运筹学排序问题中的在线排序
    • ¥15 关于#flink#的问题:关于docker部署flink集成hadoop的yarn,请教个问题flink启动yarn-session.sh连不上hadoop
    • ¥30 求一段fortran代码用IVF编译运行的结果
    • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
    • ¥15 lammps拉伸应力应变曲线分析
    • ¥15 C++ 头文件/宏冲突问题解决
    • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
    • ¥50 安卓adb backup备份子用户应用数据失败
    • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
    • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题