我一直收到错误消息,该操作未在我的控制器中定义,但确实如此。我可以访问index操作,但不能访问processOrder操作。
下面是我的控制器和路线文件。
namespace App\Http\Controllers\ThirdPartyAPI;
use App\Order;
use App\ThirdPartyAPI;
use GuzzleHttp\Client;
use App\Jobs\ThirdParyOrders;
use App\ThirdParty\ThirdPartyAPI;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class OrdersController extends Controller
{
public function index ()
{
// list orders
}
public function processOrder()
{
// some logic here
}
}
如果我在我的routes / web.php文件中将动作称为“ @index”,它可以工作并返回URL,但是如果我将“ @index”更改为“ @processOrder”,则会引发错误。
即。这有效:
Route::get('thirdparty/process-order', function() {
return action('ThirdPartyApi\OrdersController@index');
});
但这不是:
Route::get('thirdparty/process-order', function() {
return action('ThirdPartyApi\OrdersController@processOrder');
});
我不确定我在哪里错过情节。
我尝试退出然后重新运行:
php artisan serve
我也尝试过
composer dump-autoload
答案 0 :(得分:0)
仍然不确定最初出现的问题是什么,但是我设法通过使用其他方法使其工作。 使用闭包,我这样做是这样的:
Route::get('thirdparty/{thirdparty_client}/process-order/{order}', 'ThirdPartyApi\OrdersController@processOrder');
这似乎可以解决问题。我不知道我可以通过这种方式将多个参数传递给控制器,但这可以100%工作。
答案 1 :(得分:0)
我认为您应该尝试将此作为路线。
Route::any("thirdparty/process-order", "ThirdPartyApi\OrdersController@processOrder");