2017-08-25 75 views
0

我使用laravl 5.2和以下是我的代码Laravel:方法是在控制器中定义但它说没有找到方法

我收到错误

ReflectionException在Route.php行280: 方法App \ Http \ Controllers \ Signup_controllers :: guestcheckout()不存在

我在做什么错? plz帮助

这是我route.php

Route::group(array('prefix' => 'signup'), function() 
{ 
    Route::resource('/register', '[email protected]'); 
    Route::resource('/guestcheckout', '[email protected]'); 
    Route::resource('/login', '[email protected]'); 
    Route::resource('/logout', '[email protected]'); 
    Route::resource('/ajaxCheckCustomerEmailExist', '[email protected]'); 
}); 

这是我的注册控制器

<?php 

    namespace App\Http\Controllers; 
    use Illuminate\Http\Request; 
    use App\Http\Requests; 
    use App\Http\Controllers\Controller; 
    use Illuminate\Support\Facades\Input; 
    use Symfony\Component\HttpFoundation\File\UploadedFile; 
    use Symfony\Component\HttpFoundation\Session\Session1; 
    use Illuminate\Support\Facades\Validator; 
    use Illuminate\Support\Facades\Redirect; 
    use Image; 
    use Session; 
    use DB; 
    use Mail; 

    use App\Http\Models\Frm_mailing_list; 
    use App\Http\Models\Frm_contactus; 
    use App\Http\Models\Emailautoresponse; 
    use App\Http\Models\Adminemail; 
    use App\Http\Models\Emailsetting; 
    use App\Http\Models\Product_price; 

    class Signup_controllers extends Controller 
    { 
     public function index(Request $request) 
     { 

     } 
     public function register(Request $request) 
     { 
      include(public_path().'/app/Http/Controllers/action/register_controllers.php'); 
     } 
     public function login(Request $request) 
     { 
      include(public_path().'/app/Http/Controllers/action/login_controllers.php');  
     } 
     public function logout() 
     { 
      Session::flush(); 
      return Redirect::away(url('/login-registration'))->send(); 
     } 
     public function guestcheckout(Request $request) 
     { 
      include(public_path().'/app/Http/Controllers/action/guestcheckout_controllers.php');  
     } 

     public function ajaxCheckCustomerEmailExist(Request $request)  
     { 
      //Checked By Ranjit 
      $email=$request->email; 
      $customerData=array('email'=>$email); 
      $Customer=new Customer; 

      $resultCustomer=$Customer->getByAttributesQuery($customerData); 
      if($resultCustomer['recordCount']>0){ 
       echo "false"; 
      }else{ 
       echo "true"; 
      } 
     } 
    } 

当我尝试调用guestcheckout它说没有找到方法,即使我已经将它定义

回答

0

您正在使用资源控制器不正确。请参阅Laravel文件。

https://laravel.com/docs/5.4/controllers#resource-controllers

+1

1)这是一条评论。 2)是什么让你认为控制器使用不当? –

+0

资源控制器只能分配一个控制器,而不是控制器内部的一个方法 'Route :: resource('photos','PhotoController');'' –

0

变化:

Route::resource('/guestcheckout', '[email protected]'); 

Route::post('/guestcheckout', '[email protected]'); 

和做其他途径同样的事情,与postget您的需求更换resource

Laravel资源路由通过一行代码将典型的“CRUD”路由分配给一个 控制器。你这样称呼它: Route::resource('photos', 'PhotoController');

2
Route::get('/register', '[email protected]'); 

你包括控制器内的控制器和东西alsorts是不对您的代码,会导致您的问题

我会考虑读了解Laravel如何工作的文档

相关问题