Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

Shuvoo's avatar

BadMethodCallException

Method App\Http\Controllers\CampaignController::show does not exist.

Bad Method Call Did you mean App\Http\Controllers\CampaignController::dispatchNow() ?

<?php

namespace App\Http\Controllers;

use App\Campaign;
use Illuminate\Http\Request;

class CampaignController extends Controller
{

// i have another public funtion , index , create , store , update , destroy . 
public function info()
    {
        $title = 'Information ';
        $campaigns = Campaign::all();
        return view('campaign.info', compact('campaigns', 'title'));
    }

}

route

Route::resource('Campaign', 'CampaignController');
Route::get('/Campaign/info', 'CampaignController@info')->name('Campaign.info');
0 likes
1 reply
tykus's avatar
tykus
Best Answer
Level 104

Change the order of the resource route declaration (which anyway appears redundant) and the info route. The resource route definition creates a route that responds to GET /Campaign/{Campaign}, whenever you request GET /Campaign/info, that resource route is being matched.

Route::get('/Campaign/info', 'CampaignController@info')->name('Campaign.info');
Route::resource('Campaign', 'CampaignController');

Please or to participate in this conversation.