bgultekin / laravel4-datatables-package

Server-side handler of DataTables Jquery Plugin for Laravel 4
267 stars 108 forks source link

Class 'Controllers\Admin\Datatables' not found #70

Closed bakerstreetsystems closed 10 years ago

bakerstreetsystems commented 10 years ago

I admit that I am new to Laravel and it might just be something simple and I thank you in advance for your help.

I started off with the Laravel4 Started Kit (https://github.com/brunogaspar/laravel4-starter-kit) for a brand new project, and the only other thing I did was download this package to see if i could make it work. I followed the install directions to the T for both the starter kit and for this package. It seemed like everything installed fine.

But then I go to try out a Datatable. I tried editing the controllers/admin/BlogsController.php by placing something similar to the following in the getIndex function:

$posts = Post::select(array('posts.id','posts.title','posts.created_at')); return Datatables::of($posts)->make();

The problem is that when I run the page again with Datatables, I get the following error:

Class 'Controllers\Admin\Datatables' not found

Any suggestions? Why can't the starter kit understand where to look for the Datatables class? Thanks.

yajra commented 10 years ago

Have you added Datatables on your app config file? See link below for installation of the package.

https://github.com/bllim/laravel4-datatables-package#installation

bakerstreetsystems commented 10 years ago

I think I followed the instructions... here is what I have:

'providers' => array(

    'Illuminate\Foundation\Providers\ArtisanServiceProvider',
    'Illuminate\Auth\AuthServiceProvider',
    'Illuminate\Cache\CacheServiceProvider',
    'Illuminate\Foundation\Providers\CommandCreatorServiceProvider',
    'Illuminate\Session\CommandsServiceProvider',
    'Illuminate\Foundation\Providers\ComposerServiceProvider',
    'Illuminate\Routing\ControllerServiceProvider',
    'Illuminate\Cookie\CookieServiceProvider',
    'Illuminate\Database\DatabaseServiceProvider',
    'Illuminate\Encryption\EncryptionServiceProvider',
    'Illuminate\Filesystem\FilesystemServiceProvider',
    'Illuminate\Hashing\HashServiceProvider',
    'Illuminate\Html\HtmlServiceProvider',
    'Illuminate\Foundation\Providers\KeyGeneratorServiceProvider',
    'Illuminate\Log\LogServiceProvider',
    'Illuminate\Mail\MailServiceProvider',
    'Illuminate\Foundation\Providers\MaintenanceServiceProvider',
    'Illuminate\Database\MigrationServiceProvider',
    'Illuminate\Foundation\Providers\OptimizeServiceProvider',
    'Illuminate\Pagination\PaginationServiceProvider',
    'Illuminate\Foundation\Providers\PublisherServiceProvider',
    'Illuminate\Queue\QueueServiceProvider',
    'Illuminate\Redis\RedisServiceProvider',
    'Illuminate\Auth\Reminders\ReminderServiceProvider',
    'Illuminate\Foundation\Providers\RouteListServiceProvider',
    'Illuminate\Database\SeedServiceProvider',
    'Illuminate\Foundation\Providers\ServerServiceProvider',
    'Illuminate\Session\SessionServiceProvider',
    'Illuminate\Foundation\Providers\TinkerServiceProvider',
    'Illuminate\Translation\TranslationServiceProvider',
    'Illuminate\Validation\ValidationServiceProvider',
    'Illuminate\View\ViewServiceProvider',
    'Illuminate\Workbench\WorkbenchServiceProvider',

    'Cartalyst\Sentry\SentryServiceProvider',
    'Bllim\Datatables\DatatablesServiceProvider',

),

'aliases' => array(

    'App'             => 'Illuminate\Support\Facades\App',
    'Artisan'         => 'Illuminate\Support\Facades\Artisan',
    'Auth'            => 'Illuminate\Support\Facades\Auth',
    'Blade'           => 'Illuminate\Support\Facades\Blade',
    'Cache'           => 'Illuminate\Support\Facades\Cache',
    'ClassLoader'     => 'Illuminate\Support\ClassLoader',
    'Config'          => 'Illuminate\Support\Facades\Config',
    'Controller'      => 'Illuminate\Routing\Controllers\Controller',
    'Cookie'          => 'Illuminate\Support\Facades\Cookie',
    'Crypt'           => 'Illuminate\Support\Facades\Crypt',
    'DB'              => 'Illuminate\Support\Facades\DB',
    'Eloquent'        => 'Illuminate\Database\Eloquent\Model',
    'Event'           => 'Illuminate\Support\Facades\Event',
    'File'            => 'Illuminate\Support\Facades\File',
    'Form'            => 'Illuminate\Support\Facades\Form',
    'Hash'            => 'Illuminate\Support\Facades\Hash',
    'HTML'            => 'Illuminate\Support\Facades\HTML',
    'Input'           => 'Illuminate\Support\Facades\Input',
    'Lang'            => 'Illuminate\Support\Facades\Lang',
    'Log'             => 'Illuminate\Support\Facades\Log',
    'Mail'            => 'Illuminate\Support\Facades\Mail',
    'Paginator'       => 'Illuminate\Support\Facades\Paginator',
    'Password'        => 'Illuminate\Support\Facades\Password',
    'Queue'           => 'Illuminate\Support\Facades\Queue',
    'Redirect'        => 'Illuminate\Support\Facades\Redirect',
    'Redis'           => 'Illuminate\Support\Facades\Redis',
    'Request'         => 'Illuminate\Support\Facades\Request',
    'Response'        => 'Illuminate\Support\Facades\Response',
    'Route'           => 'Illuminate\Support\Facades\Route',
    'Schema'          => 'Illuminate\Support\Facades\Schema',
    'Seeder'          => 'Illuminate\Database\Seeder',
    'Session'         => 'Illuminate\Support\Facades\Session',
    'Str'             => 'Illuminate\Support\Str',
    'URL'             => 'Illuminate\Support\Facades\URL',
    'Validator'       => 'Illuminate\Support\Facades\Validator',
    'View'            => 'Illuminate\Support\Facades\View',

    'Sentry'          => 'Cartalyst\Sentry\Facades\Laravel\Sentry',
    'Datatables'      => 'Bllim\Datatables\Datatables',

),

and I did the 'php artisan config:publish bllim/datatables' without any errors.

yajra commented 10 years ago

I see, the starter kit uses namespace. Add the code below on your controller and try again.

use Datatables;
bakerstreetsystems commented 10 years ago

That seemed to do the trick! Thanks!

Just to clarify for anyone with the same problem, there is a place to specify which classes to use usually at the very top of the controller. In this case, I was editing the BlogsController in the controllers/admin folder and I pasted 'use Datatables;' right under the 'use View;'