mgallegos / laravel-jqgrid

@Laravel jqGrid package allows you to easily integrate the popular @jQuery Grid Plugin (jqGrid) into your Laravel application.
mariogallegos.com
Other
69 stars 44 forks source link

Ayuda con la URL para el controlador [->setGridOption('url',URL::to('example/grid-data'))] #12

Closed comiguel closed 10 years ago

comiguel commented 10 years ago

Hola Muchas gracias por este paquete aunque me he gastado muchas horas intentando probarlo. En la consola del navegador me bota "500 (Internal Server Error) " cuando intenta ejecutar el método POST que se establece mediante la línea "->setGridOption('url',URL::to('example/grid-data'))" en el GridRender. Porfa ayudame ya que no he podido cargar los datos porque no me ejecuta el método "postGridData()" del controlador. Muchas gracias de antemano Mario.

mgallegos commented 10 years ago

¿Puedo ver el código que as colocado en el app/routes.php?

comiguel commented 10 years ago

simplemente el que pones en el tutorial paso a paso

<?php

/* -------------------------------------------------------------------------- Application Routes
Here is where you can register all of the routes for an application.
It's a breeze. Simply tell Laravel the URIs it should respond to
and give it the Closure to execute when that URI is requested.

*/

Route::get('/', function() { return View::make('hello'); }); Route::controller('example', 'AppController');

comiguel commented 10 years ago

Revisando la consola de Chrome me muestra esto: console1

En la pestaña de Network: console2

El proyecto lo tengo en https://github.com/comiguel/jqgrid y mi base de dato en local con MySql

mgallegos commented 10 years ago

Revise tu código y creo que el inconveniente que tienes es que no as definido el namespace "Example", modifica la sección "autoload" del archivo composer.json, debería de lucir así:

"autoload": { "classmap": [ "app/commands", "app/controllers", "app/models", "app/database/migrations", "app/database/seeds", "app/tests/TestCase.php" ], "psr-0": { "Example": "app" } },

Luego ejecuta el comando:

composer dump-autoload

Vuelva a intentar para ver si eso soluciona tu problema.

comiguel commented 10 years ago

Gracias por tu pronta respuesta Mario, ya registré el namespace pero me sigue saliendo lo mismo :( Revisando la estructura del código de tu demo me dí cuenta que no tienes el archivo complied.php en la carpeta bootstrap, significa algo?

Porfa ten en cuenta que apenas estoy aprendiendo Laravel así que si hay alguna otra configuración básica que haya que hacer, depronto no la haya hecho.

mgallegos commented 10 years ago

Bueno para saber realmente que esta pasando, necesito saber cual es el mensaje de error que te está enviando el servidor. En la imagen que as puesto arriba donde muestras la pestaña de "Network" del navegador, haz clic en el script "grid-data" (el que aparece en rojo) para poder ver el mensaje de error.

comiguel commented 10 years ago

Parece que no me está tomando mi modelo User que es el que trae por defecto Laravel y en donde establecí mi tabla: error

Cómo debo especificar mi modelo en la clase ExampleRepository? lo tengo así class

mgallegos commented 10 years ago

El problema que la clase "User" no se encuentra dentro del namespace Example, agrega la siguiente linea antes de "use Illuminate\Database\Eloquent\Model" y debería de funcionar:

use User;
comiguel commented 10 years ago

Excelente Mario, muchísimas gracias, ya por fin pude cargar los datos. Quería preguntarte otra cosa, con la clase GridRender puedo hacer todo lo que hace el jqGrid cierto? Dónde implemento los métodos edit, delete y eso? tienes algún ejemplo de cómo hacerlo?

comiguel commented 10 years ago

Estimado Mario, pude implementar los métodos del CRUD en la tabla pero tengo un pequeño inconveniente, por ejemplo cuando quiero eliminar un registro, el jqGrid me manda por POST una variable oper='del' pero no me manda el id real del registro que estoy editando, sino que me manda como id el número de la fila de la tabla en la que está el registro que estoy eliminando. Algo así: id Muchas gracias por toda tu ayuda (y)

mgallegos commented 10 years ago

Dejame ver el codigo de como as definido el grid con el GridRender.

comiguel commented 10 years ago

Mi GridREnder: gridrender Mi método que toma lo que me envía el jqGrid por POST: metodo

comiguel commented 10 years ago

El proyecto completo: https://github.com/comiguel/jqgrid

mgallegos commented 10 years ago

Cambia la definición de la columna "ID" por cualquiera de las siguientes dos opciones y debería de funcionar como tú esperas:

Opción 1:

->addColumn(array('index' => 'id', 'width' => 105, 'align' => 'center',  'editable' => true, 'editoptions' => array('disabled' => 'disabled')))

Opción 2:

->addColumn(array('index' => 'id', 'hidden' => true, 'editable' => true))
comiguel commented 10 years ago

Muchas gracias por la respuesta. No funcionó Mario, me sigue mandando el id del jqGrid, no el de mi tupla. No existe una forma de obtener los valores de la fila conociendo el id del jqGrid?. Disculpa mi ignorancia

mgallegos commented 10 years ago

Muchas gracias por la respuesta. No funcionó Mario, me sigue mandando el id del jqGrid, no el de mi tupla.

Me parece raro, estoy preparando un tutorial con un ejemplo parecido (lo publicare este fin de semana) donde hago lo mismo y al estar presente un input text con el campo id, envía ese id en vez del id de la fila.

No existe una forma de obtener los valores de la fila conociendo el id del jqGrid

Si, (por cierto lo incluyo en el tutorial que te comento) . Básicamente se hace de esta forma:

rowid = $('#gridID').jqGrid('getGridParam', 'selrow');
rowdata = $('#gridID').getRowData(rowid);
comiguel commented 10 years ago

Perfecto Mario, lo probaré y esperaré el tuto el finde.

mgallegos commented 10 years ago

Carlos, te dejo el enlace al tutorial que te comenté, espero te sirva: http://goo.gl/gZHbGX

comiguel commented 10 years ago

Muchísimas gracias Mario, ya lo andaba revisando, que gran trabajo amigo, cualquier duda te estaré molestando otro ratico xD. Gracias

mgallegos commented 10 years ago

De nada, no olvides actualizar el paquete, que la v1.0.0 viene con nuevas funcionalidades.