ReflectionException类app \ Repositories \ MailMessageRepository不存在

问题描述

我无法访问存储库,我无法调用函数。我试图在我的MailMessages数据表上集成一个softdelete按钮,但是我无法使用存储库,我收到了以下消息:

ReflectionException类app \ Repositories \ MailMessageRepository确实 不存在

我的MailMessageController

    <?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

    <?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) {

    }


}

解决方法

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

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

    $this->MailMessageRepository = $mailmessageRepository;
}

尝试

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

    $this->mailMessageRepository = $mailmessageRepository;
}

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