Laravel 5.6 Исключение отражения — Класс App \ Providers \ App \ Campaign не существует

Эта вещь поставила меня в тупик.

Я получаю эту ошибку / Reflection Exception -> Класс App \ Providers \ App \ Campaign не существует

Campaign — это класс, созданный для приложения.

Что странно, так это то, что эта ошибка появляется только тогда, когда я использую «показать» маршрут ресурса. Когда я перечисляю это, используя «индексный» маршрут. Я не получаю ошибок.

Вот класс:


namespace App;

use Illuminate\Database\Eloquent\Model;

class Campaign extends Model
{
protected $table='campaigns';
protected $primaryKey = 'campaignID';
protected $fillable = [
'campaignID',
'campaignName',
'shortDescription',
'longDescription',
];

public function company(){
return $this->belongsTo('App\Company','companyID','companyID');
}

public function person(){
return $this->belongsTo('App\Person','campaignID','campaignID');
}
}

и вот функция «показать» с контроллера


public function show(Campaign $campaign)
{
$campaign = Campaign::find($campaign->campaignID);
return view('campaigns.show', ['campaign'=>$campaign]);
}

РЕДАКТИРОВАТЬ — вот весь контроллер

<?php

namespace App\Http\Controllers;

use App\Campaign;
use App\User;
use App\Company;
use App\Lead;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Storage;

class CampaignsController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$campaigns=Campaign::get();
return view('campaigns.index', ['campaigns'=> $campaigns]);
}

/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('campaigns.create');
}

/**
* Store a newly created resource in storage.
*
* @param  \Illuminate\Http\Request  $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$coID = Auth::user()->companyID;
$uID = Auth::user()->id;


$campaign = Campaign::create([
'campaignName' => $request->input('campaignName'),
'shortDescription' => $request->input('shortDescription'),
'longDescription' => $request->input('longDescription'),
]);


if($campaign){
$campaigns=Campaign::where('companyID',Auth::User()->companyID)->get();
return view('campaigns.index', ['campaigns'=> $campaigns])
->with('success' , 'Campaign created successfully');
}
return back()->withInput()->with('errors', 'Error creating new campaign');
}

/**
* Display the specified resource.
*
* @param  \App\Campaign  $campaign
* @return \Illuminate\Http\Response
*/

public function show(Campaign $campaign)
{
$campaign = Campaign::find($campaign->campaignID);
return view('campaigns.show', ['campaign'=>$campaign]);
}
/**
* Show the form for editing the specified resource.
*
* @param  \App\Campaign  $campaign
* @return \Illuminate\Http\Response
*/
public function edit(Campaign $campaign)
{
$campaign = Campaign::find($campaign->campaignID)->toSQL();
dd($campaign);
return view('campaigns.edit', ['campaign'=>$campaign]);
}

/**
* Update the specified resource in storage.
*
* @param  \Illuminate\Http\Request  $request
* @param  \App\Campaign  $campaign
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Campaign $campaign)
{
//
}

/**
* Remove the specified resource from storage.
*
* @param  \App\Campaign  $campaign
* @return \Illuminate\Http\Response
*/
public function destroy(Campaign $campaign)
{
//
}

public function listcompanycampaigns()
{
$campaigns=Campaign::where('companyID',Auth::User()->companyID)->get();
return view('campaigns.index', ['campaigns'=> $campaigns]);
}

public function listambassadorcampaigns()
{
$campaigns = Campaign::get();
return view('campaigns.ambassadorindex', ['campaigns'=> $campaigns]);
}

}

Я уже очистил кэш и «composer dump-autoload» безрезультатно.

Спасибо за любую помощь, которую вы, ребята, можете оказать.

Дживс

0

Решение

Как выглядит ваш маршрут? Используете ли вы привязку модели маршрута?

Если да, то сначала вы должны узнать, как это работает:

https://laravel.com/docs/5.6/routing#route-model-binding

В противном случае удалите шрифт в вашем show метод и поиск модели с фактическим целым числом в вашем методе поиска.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector