2016-11-11 48 views
2

我有下面的代碼,我試圖讓通過laravel路線後呼叫:

routes.php文件

use Illuminate\Support\Facades\Input; 
Route::post(config('api.basepath') . 'users/parent', array(
    'uses' => '[email protected]' 
)); 

的方法createParent()是遵循在UserAccount控制器=>

UserAccountController.php

namespace App\Http\Controllers; 

use Auth; 
use Mail; 
use Lang; 
use Validator; 
use Hash; 
use Storage; 
use Illuminate\Http\Request; 
use Carbon\Carbon; 
use Log; 

class UserAccountController extends Controller 
{ 

    public function createParent() 
    { 
     Log::info($this->request); 
     $this->verify($this->request, 'validations.user.create'); 
     ...... 
     ...... 
    } 
} 

這是輸出:

[2016-11-11 13:43:06] local.INFO: null 

#0 /home/test/myproject/web/app/Http/Controllers/UserAccountController.php(268): App\Http\Controllers\Controller->verify(NULL, 'validations.use...') 
#1 [internal function]: App\Http\Controllers\UserAccountController->createParent() 
#2 /home/test/myproject/web/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(80): call_user_func_array(Array, Array) 
#3 /home/test/myproject/web/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(146): Illuminate\Routing\Controller->callAction('createParent', Array) 
#4 /home/test/myproject/web/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(94): Illuminate\Routing\ControllerDispatcher->call(Object(App\Http\Controllers\UserAccountController), Object(Illuminate\Routing\Route), 'createParent') 
#5 [internal function]: Illuminate\Routing\ControllerDispatcher->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request)) 
#6 /home/test/myproject/web/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(52): call_user_func(Object(Closure), Object(Illuminate\Http\Request)) 
#7 [internal function]: Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request)) 
#8 /home/test/myproject/web/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): call_user_func(Object(Closure), Object(Illuminate\Http\Request)) 
#9 /home/test/myproject/web/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(96): Illuminate\Pipeline\Pipeline->then(Object(Closure)) 
#10 /home/test/myproject/web/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(54): Illuminate\Routing\ControllerDispatcher->callWithinStack(Object(App\Http\Controllers\UserAccountController), Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request), 'createParent') 
#11 /home/test/myproject/web/vendor/laravel/framework/src/Illuminate/Routing/Route.php(174): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request), 'App\\Http\\Contro...', 'createParent') 
#12 /home/test/myproject/web/vendor/laravel/framework/src/Illuminate/Routing/Route.php(140): Illuminate\Routing\Route->runController(Object(Illuminate\Http\Request)) 
#13 /home/test/myproject/web/vendor/laravel/framework/src/Illuminate/Routing/Router.php(724): Illuminate\Routing\Route->run(Object(Illuminate\Http\Request)) 
#14 [internal function]: Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request)) 
#15 /home/test/myproject/web/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(52): call_user_func(Object(Closure), Object(Illuminate\Http\Request)) 
#16 [internal function]: Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request)) 
#17 /home/test/myproject/web/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): call_user_func(Object(Closure), Object(Illuminate\Http\Request)) 
#18 /home/test/myproject/web/vendor/laravel/framework/src/Illuminate/Routing/Router.php(726): Illuminate\Pipeline\Pipeline->then(Object(Closure)) 
#19 /home/test/myproject/web/vendor/laravel/framework/src/Illuminate/Routing/Router.php(699): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request)) 
#20 /home/test/myproject/web/vendor/laravel/framework/src/Illuminate/Routing/Router.php(675): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request)) 
#21 /home/test/myproject/web/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(246): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request)) 
#22 [internal function]: Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request)) 
#23 /home/test/myproject/web/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(52): call_user_func(Object(Closure), Object(Illuminate\Http\Request)) 
#24 /home/test/myproject/web/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(44): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request)) 
#25 [internal function]: Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure)) 
#26 /home/test/myproject/web/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(136): call_user_func_array(Array, Array) 
#27 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request)) 
#28 /home/test/myproject/web/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\Http\Request)) 
#29 [internal function]: Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request)) 
#30 /home/test/myproject/web/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): call_user_func(Object(Closure), Object(Illuminate\Http\Request)) 
#31 /home/test/myproject/web/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(132): Illuminate\Pipeline\Pipeline->then(Object(Closure)) 
#32 /home/test/myproject/web/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(99): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request)) 
#33 /home/test/myproject/web/public/index.php(53): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request)) 
#34 {main} 

請幫忙。我現在堅持了幾個小時。

+0

那麼...你在哪裏定義了'$ request'屬性?你爲什麼期望它存在或被填充? – Devon

+0

將請求傳遞給您的控制器方法。 – Neat

+0

在你的'createParent()'方法中,嘗試使用Laravel helper函數轉儲請求數據,如下所示:'dd(request() - > all());'。讓我們知道你會得到什麼! –

回答

0

我終於得到它的工作。 這是一個代碼問題。

編輯

其實它有一個問題,因爲在我的課,我用另一個類,並初始化它的對象。但是這個類的構造函數反過來期望它包含在它的類中的進一步的類初始化。所以我必須初始化這些子依賴類,然後初始化類對象。

1

你的功能應該是爲:

public function createParent(Request $request) 
{ 
    Log::info($request); 
    $this->verify($request, 'validations.user.create'); 
    ...... 
    ...... 
} 

,並確保在您的控制器的頂部,導入Illuminate\Http\Request類:

use Illuminate\Http\Request; 
+0

...或注入請求並通過(父)構造函數設置'$ request'-屬性。 – Quasdunk

+0

我已經在我的應用程序\ Http \ Controllers \ Controller.php namespace App \ Http \ Controllers; 使用Illuminate \ Foundation \ Bus \ DispatchesJobs; 使用Illuminate \ Routing \ Controller作爲BaseController; 使用Illuminate \ Http \ Request; 使用App \ Http \ Requests; 類控制器擴展BaseController {0}使用AuthorizesRequests,DispatchesJobs; protected $ request; public function __construct(Request $ request) { $ this-> request = $ request; } } – zeetit

0

你從來沒有通過請求類對象的方法createParent( )。

試試這個

public function createParent(Request $request) 
{ 
    $inputs = $request->all(); 
} 
+0

請在第三次重複同樣的事情之前閱讀已有的答案,在OP說明這不是問題後的一個小時內...... – Quasdunk