Laravel ReflectionException类app\Repositories\MailMessageRepository不存在

Laravel ReflectionException类app\Repositories\MailMessageRepository不存在,laravel,datatable,repository,Laravel,Datatable,Repository,访问存储库时遇到问题,无法调用函数。我正在尝试在MailMessages数据表上集成softdelete按钮,但我无法使用存储库,我收到以下消息: ReflectionException类app\Repositories\MailMessageRepository 不存在 我的邮件控制器 <?php namespace App\Http\Controllers; use App\DataTables\MailMessageDataTable; use App\Http\Requ

访问存储库时遇到问题,无法调用函数。我正在尝试在MailMessages数据表上集成softdelete按钮,但我无法使用存储库,我收到以下消息:

ReflectionException类app\Repositories\MailMessageRepository 不存在

我的邮件控制器

    <?php

namespace App\Http\Controllers;

use App\DataTables\MailMessageDataTable;
use App\Http\Requests\MailMessageRequest;
use app\Repositories\MailMessageRepository;
use App\MailMessage;
use Illuminate\Http\Request;
use DataTables;
use PulkitJalan\Google\Facades\Google;

class MailMessageController extends Controller
{
    protected $mailMessageRepository;

    /**
     * UserController constructor.
     * @param $mailmessageRepository
     */
    public function __construct(mailmessageRepository $mailmessageRepository)
    {
        parent::__construct();

        $this->MailMessageRepository = $mailmessageRepository;
    }


    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(MailMessageDataTable $MailMessageDataTable)
    {
        return $MailMessageDataTable->render('mailmessage.index');
    }
    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
     //   $MailMessage = $this->MailMessageRepository;
        return view('mailmessage.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(MailMessageRequest $request)
    {
        $MailMessage = $this->MailMessageRepository->saveMailMessage($request);
        return redirect()->route('MailMessage.show', ["id" => $MailMessage->id])
            ->with(["message" => __('messages.create.success')]);
    }


    /**
     * Display the specified resource.
     *
     * @param  \App\MailMessage  $mailMessage
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        $MailMessage = MailMessage::find($id);
        return view('MailMessage.show', ['MailMessage' => $MailMessage]);
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\MailMessage  $mailMessage
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        $MailMessage = MailMessage::find($id);
        return view('MailMessage.edit', ['MailMessage' => $MailMessage]);
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\MailMessage  $mailMessage
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        $MailMessage = MailMessage::find($id);
        $MailMessage->type = $request->type;
        $MailMessage->description = $request->description;
        $MailMessage->from_value = $request->from_value;
        $MailMessage->to_value = $request->to_value;
        $MailMessage->update();
        return redirect('MailMessage/' .$MailMessage->id)->with(["message" => __('messages.edit.success')]);
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\MailMessage  $mailMessage
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        $MailMessage = $this->MailMessageRepository->getMessagebyId($id, true);
        if ($MailMessage->trashed()) {
            $MailMessage->restore();
        }else{
            $MailMessage->delete();
        }

        return redirect()->route('MailMessage.index')
            ->with(["message" => __('messages.update.success')]);
    }
    public function digest_report(MailMessage $mailMessage)
    {

    }
}

可能有问题,您声明了mailMessageRepository变量,因此需要使用$this->mailMessageRepository

    <?php


namespace App\Repositories;

use App\User;
use App\MailMessage;
use App\Enums\MailMessageType;
use Illuminate\Support\Facades\Auth;

class MailMessageRepository
{

    public function getMessage($id, $trashed = false)
    {
        if($trashed){
            return MailMessage::withTrashed();
        }
        return MailMessage;
    }

    public function getMessageById($id, $trashed = false)
    {

        if ($trashed) {
            return MailMessage::withTrashed()->with('roles')
                ->where('id', '=', $id)->first();
        }

        return MailMessage->where('id', '=', $id)->first();
    }

    public function deleteMailMessage($id)
    {
        $MailMessage = MailMessage::find($id);
        $MailMessage->delete();
    }

    public function saveMailMessage($request)
    {
        $MailMessage = new Message($request->all());
        $MailMessage->save();
        return $MailMessage;
    }

    public function setOAuthAccessToken($accessToken)
    {

    }

    public function updateMailMessage($request, $id) {

    }


}
public function __construct(mailmessageRepository $mailmessageRepository)
{
    parent::__construct();

    $this->MailMessageRepository = $mailmessageRepository;
}
试试这个

public function __construct(MailMessageRepository $mailmessageRepository)
{
    parent::__construct();

    $this->mailMessageRepository = $mailmessageRepository;
}

并尝试将代码中的所有$this->MailMessageRepository替换为$this->MailMessageRepository

我收到了相同的错误:(参数“Class-app\Repositories\MailMessageRepository不存在”使用app\Repositories\MailMessageRepository改为尝试app\Repositories\MailMessageRepository;或者您应该尝试composer dump autoloadnow我收到此错误ReflectionException类app\Repositories\MailMessageRepository不存在以前的异常语法错误,意外的'->'(T_OBJECT_操作符),应为';'(0)更改为App\Repositories\MailMessageRepository;并转储自动加载后,请检查路径App\Repositories\MailMessageRepository.php