Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

[SOLUCIONADO] Laravel Method does not exist.

Estas en el tema de Laravel Method does not exist. en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, estoy teniendo un problema sumamente raro, ayer me sucedio lo mismo, todo funcionaba perfecto ayer a la manaña me puse a trabajar y un ...
  #1 (permalink)  
Antiguo 09/05/2019, 06:25
 
Fecha de Ingreso: julio-2009
Mensajes: 110
Antigüedad: 10 años
Puntos: 1
Laravel Method does not exist.

Hola, estoy teniendo un problema sumamente raro, ayer me sucedio lo mismo, todo funcionaba perfecto ayer a la manaña me puse a trabajar y un modulo no funciona... hoy me paso lo mismo con el mismo modulo.

es un datatable, no me carga la lista de clientes y no se porqué... (repito ayer estaba funcionando y no he tocado nada de hecho no tiene fecha de modificación tampoco)

CustomerController:

Código PHP:
use AppHttpRequests;
use 
AppCustomer;
use 
IlluminateSupportFacadesRedirect;
use 
AppHttpRequestsCustomerFormRequest;
use 
DB;
use 
YajraDatatablesDatatables;

class 
CustomerController extends Controller
{

    public function 
index()
    {
            return 
view('admin.sale.customer.index');
    }

   
    public function 
getCustomers()
    {
            
$customers Customer::select(['id','name','type_doc','num_doc','mobile','class']);

        return 
Datatables::of($customers)
            ->
addColumn('action', function($row){
   
                           
$btn '<a href="/public/customers/'.$row->id.'"><button class="btn btn-success">Ver</button></a>';
   
                           
$btn $btn' <a href="/public/customers/'.$row->id.'/edit" data-toggle="tooltip"  data-id="'.$row->id.'" data-original-title="Edit"><button class="btn btn-info">Editar</button></a>';

   
                           
$btn $btn.' <a href="javascript:void(0)" data-toggle="tooltip"  data-id="'.$row->id.'" data-original-title="Delete"><button class="btn btn-danger">Eliminar</button></a>';


    
                            return 
$btn;
                    })
            ->
rawColumns(['action'])
            ->
make(true);
    }

Customer.php (Model)
Código PHP:
class Customer extends Model
{
    protected 
$table='customers';

    protected 
$primaryKey="id";

    public 
$timestamps=true;

    protected 
$fillable =[
        
'type_customer',
        
'name',
        
'type_doc',
        
'num_doc',
        
'address',
        
'telephone',
        
'mobile',
        
'whatsapp',
        
'class',
        
'note',
        
'email'
    
];

    protected 
$guarded =[

    ];

View:

Código PHP:
<table id="customers" class="table table-bordered table-striped">
                <
thead>
                <
tr>
                    <
th>Id</th>
                    <
th>Nombre</th>
                    <
th>Tipo de Doc</th>
                    <
th>Documento</th>
                    <
th>Celular</th>
                    <
th>Clase</th>
                    <
th>Opciones</th>
                </
tr>
                </
thead>
                <
tbody>               
                  
                </
tbody>
                <
tfoot>
                <
tr>
                    <
th>Id</th>
                    <
th>Nombre</th>
                    <
th>Tipo de Doc</th>
                    <
th>Documento</th>
                    <
th>Celular</th>
                    <
th>Clase</th>
                    <
th>Opciones</th>
                </
tr>
                </
tfoot>
              </
table>

<
script type="text/javascript">
    $(
document).ready(function() {
        
oTable = $('#customers').DataTable({
            
"processing"true,
            
"serverSide"true,
            
"ajax""{{ route('datatable.customers') }}",
            
"columns": [
                {
data'id'name'id'},
                {
data'name'name'name'},
                {
data'type_doc'name'type_doc'},
                {
data'num_doc'name'num_doc'},
                {
data'mobile'name'mobile'},
                {
"name""class""data""class""render": function (datatypefullmeta)
                {
                  return 
"<img src=\"{{asset('/dist/img/status/customer/status')}}" data ".png\" height=\"25\" width=\"25\"/>";
                },},
    
                {
data'action'name'action'}
            ]
        });
    });
</script> 
Web.php (Route)
Código PHP:
Route::resource('/customers''Admin\CustomerController');
Route::get('/customers''Admin\[email protected]');
Route::get('/getcustomers''Admin\[email protected]')->name('datatable.customers'); 
El error en consola es este:
Código:
http://127.0.0.1/public/getcustomers?draw=1&columns%5B0%5D%5Bdata%5D=id&columns%5B0%5D%5Bname%5D=id&columns%5B0%5D%5Bsearchable%5D=true&columns%5B0%5D%5Borderable%5D=true&columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B1%5D%5Bdata%5D=name&columns%5B1%5D%5Bname%5D=name&columns%5B1%5D%5Bsearchable%5D=true&columns%5B1%5D%5Borderable%5D=true&columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B2%5D%5Bdata%5D=type_doc&columns%5B2%5D%5Bname%5D=type_doc&columns%5B2%5D%5Bsearchable%5D=true&columns%5B2%5D%5Borderable%5D=true&columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B3%5D%5Bdata%5D=num_doc&columns%5B3%5D%5Bname%5D=num_doc&columns%5B3%5D%5Bsearchable%5D=true&columns%5B3%5D%5Borderable%5D=true&columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B4%5D%5Bdata%5D=mobile&columns%5B4%5D%5Bname%5D=mobile&columns%5B4%5D%5Bsearchable%5D=true&columns%5B4%5D%5Borderable%5D=true&columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B5%5D%5Bdata%5D=class&columns%5B5%5D%5Bname%5D=class&columns%5B5%5D%5Bsearchable%5D=true&columns%5B5%5D%5Borderable%5D=true&columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B6%5D%5Bdata%5D=action&columns%5B6%5D%5Bname%5D=action&columns%5B6%5D%5Bsearchable%5D=true&columns%5B6%5D%5Borderable%5D=true&columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&order%5B0%5D%5Bcolumn%5D=0&order%5B0%5D%5Bdir%5D=asc&start=0&length=10&search%5Bvalue%5D=&search%5Bregex%5D=false&_=1557405564908 500 (Internal Server Error)
y al entrar a 127.0.0.1/public/getcustomers (que debería devolver el json, tira este error)

Código:
Method App\Http\Controllers\Admin\CustomerController::getCustomers does not exist.
pero como verán el method si existe... lo que me llama la atención es que he copiado y pegado este codigo en otros 10 sectores y los otros 10 sectores siguen funcionando sin problemas...
  #2 (permalink)  
Antiguo 09/05/2019, 08:52
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.993
Antigüedad: 6 años
Puntos: 379
Respuesta: Laravel Method does not exist.

Código PHP:
Ver original
  1. Route::resource('/customers', 'Admin\CustomerController');
  2. // no es necesario ya esta incluido en el resource
  3. Route::get('/customers', 'Admin\[email protected]');
  4. Route::get('/getcustomers', 'Admin\[email protected]')->name('datatable.customers');
Es probable que sea el orden de las rutas. La documentación dice que cualquier ruta adicional a un Resource controller debe de llmarse antes. Es decir tus rutas quedarian de la siguiente forma
Código PHP:
Ver original
  1. Route::get('/getcustomers', 'Admin\[email protected]')->name('datatable.customers');  
  2.  
  3. Route::resource('/customers', 'Admin\CustomerController');
Prueba de esa forma.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 09/05/2019, 09:30
 
Fecha de Ingreso: julio-2009
Mensajes: 110
Antigüedad: 10 años
Puntos: 1
Respuesta: Laravel Method does not exist.

Hola, tira error, levante un git de ayer y funciona perfecto... volvi a agregar los modulos y no ha fallado...

así como lo copie tengo otro proyecto y ese nunca me dio problema, y los otros modulos... los tengo de la misma manera y esos funcionan, es extremadamente extraño que las 3 veces me ha fallado solo ese modulo :S
  #4 (permalink)  
Antiguo 09/05/2019, 17:51
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.993
Antigüedad: 6 años
Puntos: 379
Respuesta: Laravel Method does not exist.

Cita:
Hola, tira error, levante un git de ayer y funciona perfecto... volvi a agregar los modulos y no ha fallado...
No tengo idea a que te refieres con modulos, si estas usando algun paquete adicional para eso entonces resivsa los issues de ese paquete puede estar el problema de ese lado. Sin ms información no creo que pueda aportar mas.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 10/05/2019, 06:23
 
Fecha de Ingreso: julio-2009
Mensajes: 110
Antigüedad: 10 años
Puntos: 1
Respuesta: Laravel Method does not exist.

Hola, modulos me refiero a los sectores que voy agregando... ayer hice una comparación de archivos y ninguno esta modificado no se que es lo que pasó... gracias por la ayuda tienes la reputación por contestar!

Saludos!
  #6 (permalink)  
Antiguo 13/05/2019, 02:55
Avatar de baldaweb  
Fecha de Ingreso: septiembre-2010
Ubicación: Barco pirata
Mensajes: 239
Antigüedad: 8 años, 9 meses
Puntos: 20
Respuesta: Laravel Method does not exist.

Haz un composer dump-autoload --optimize.
__________________
CHOOO COOO LAAA TEEEEEEEEE



La zona horaria es GMT -6. Ahora son las 00:16.