1.routes:
Route::get('/', 'HomeController@welcome');
Route::auth();
Route::get('/home', 'HomeController@index');
Route::resource('projects', 'ProjectsController');
Route::get('tasks/charts', ['as' => 'tasks.charts', 'uses' => 'TasksController@charts']);
Route::resource('tasks', 'TasksController');
Route::post('tasks/{tasks}/steps/complete', 'StepsController@completeAll');
Route::delete('tasks/{tasks}/steps/clear', 'StepsController@claerCompeted');
Route::resource('tasks.steps', 'StepsController');
Route::post('tasks/{id}/check', ['as' => 'tasks.check', 'uses' => 'TasksController@check']);
2.Controller:
namespace AppHttpControllers;
use IlluminateHttpRequest;
use AppHttpRequests;
use AppTask;
use AppStep;
class StepsController extends Controller
{
/**
* Display a listing of the resource.
*
* @return IlluminateHttpResponse
*/
public function index($id)
{
$steps = Task::findOrFail($id)->steps;
return $steps;
}
/**
* Show the form for creating a new resource.
*
* @return IlluminateHttpResponse
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param IlluminateHttpRequest $request
* @return IlluminateHttpResponse
*/
public function store($taskID, Request $request)
{
Task::findOrFail($taskID)->steps()->create([
'name' => $request->name,
'completed' => 0
]);
}
/**
* Display the specified resource.
*
* @param int $id
* @return IlluminateHttpResponse
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return IlluminateHttpResponse
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param IlluminateHttpRequest $request
* @param int $id
* @return IlluminateHttpResponse
*/
public function update(Request $request, $taskID, $id)
{
$step = Step::findOrFail($id);
$step->completed = $request->opposite ? 1 : 0;
$step->save();
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return IlluminateHttpResponse
*/
public function destroy($taskID, $id)
{
Step::findOrFail($id)->delete();
}
public function completeAll($taskID)
{
Task::findOrFail($taskID)->steps()->update([
'completed' => 1
]);
}
public function claerCompeted($taskID)
{
Step::where('task_id', $taskID)->where('completed',1)->delete();
}
}
3.Exception:
[2017-03-29 14:51:32] local.ERROR: ReflectionException: Method AppHttpControllersStepsController::claerCompeted() does not exist in /home/vagrant/Code/TaskManager/vendor/laravel/framework/src/Illuminate/Routing/Route.php:280
Stack trace:
/home/vagrant/Code/TaskManager/vendor/laravel/framework/src/Illuminate/Routing/Route.php(280): ReflectionMethod->__construct('App\Http\Contro...', 'claerCompeted')
/home/vagrant/Code/TaskManager/vendor/laravel/framework/src/Illuminate/Routing/Router.php(857): IlluminateRoutingRoute->signatureParameters('IlluminateData...')
#2 /home/vagrant/Code/TaskManager/vendor/laravel/framework/src/Illuminate/Routing/Router.php(842): IlluminateRoutingRouter->substituteImplicitBindings(Object(IlluminateRoutingRoute))
#3 /home/vagrant/Code/TaskManager/vendor/laravel/framework/src/Illuminate/Routing/Router.php(825): IlluminateRoutingRouter->substituteBindings(Object(IlluminateRoutingRoute))
#4 /home/vagrant/Code/TaskManager/vendor/laravel/framework/src/Illuminate/Routing/Router.php(691): IlluminateRoutingRouter->findRoute(Object(IlluminateHttpRequest))
#5 /home/vagrant/Code/TaskManager/vendor/laravel/framework/src/Illuminate/Routing/Router.php(675): IlluminateRoutingRouter->dispatchToRoute(Object(IlluminateHttpRequest))
#6 /home/vagrant/Code/TaskManager/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(246): IlluminateRoutingRouter->dispatch(Object(IlluminateHttpRequest))
#7 [internal function]: IlluminateFoundationHttpKernel->IlluminateFoundationHttp{closure}(Object(IlluminateHttpRequest))
#8 /home/vagrant/Code/TaskManager/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(52): call_user_func(Object(Closure), Object(IlluminateHttpRequest))
#9 /home/vagrant/Code/TaskManager/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(44): IlluminateRoutingPipeline->IlluminateRouting{closure}(Object(IlluminateHttpRequest))
#10 [internal function]: IlluminateFoundationHttpMiddlewareCheckForMaintenanceMode->handle(Object(IlluminateHttpRequest), Object(Closure))
#11 /home/vagrant/Code/TaskManager/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(136): call_user_func_array(Array, Array)
#12 [internal function]: IlluminatePipelinePipeline->IlluminatePipeline{closure}(Object(IlluminateHttpRequest))
#13 /home/vagrant/Code/TaskManager/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(32): call_user_func(Object(Closure), Object(IlluminateHttpRequest))
#14 [internal function]: IlluminateRoutingPipeline->IlluminateRouting{closure}(Object(IlluminateHttpRequest))
#15 /home/vagrant/Code/TaskManager/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): call_user_func(Object(Closure), Object(IlluminateHttpRequest))
#16 /home/vagrant/Code/TaskManager/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(132): IlluminatePipelinePipeline->then(Object(Closure))
#17 /home/vagrant/Code/TaskManager/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(99): IlluminateFoundationHttpKernel->sendRequestThroughRouter(Object(IlluminateHttpRequest))
#18 /home/vagrant/Code/TaskManager/public/index.php(53): IlluminateFoundationHttpKernel->handle(Object(IlluminateHttpRequest))
#19 {main}
正在学习laravel中,新手一枚,希望各大神帮帮忙解决一下吧,十分感谢!!!上面代码的缩进问题,望谅解。
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…