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 App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Task;
use App\Step;
class StepsController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index($id)
{
$steps = Task::findOrFail($id)->steps;
return $steps;
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store($taskID, Request $request)
{
Task::findOrFail($taskID)->steps()->create([
'name' => $request->name,
'completed' => 0
]);
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
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 \Illuminate\Http\Response
*/
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 App\Http\Controllers\StepsController::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('Illuminate\Data...')
#2 /home/vagrant/Code/TaskManager/vendor/laravel/framework/src/Illuminate/Routing/Router.php(842): Illuminate\Routing\Router->substituteImplicitBindings(Object(Illuminate\Routing\Route))
#3 /home/vagrant/Code/TaskManager/vendor/laravel/framework/src/Illuminate/Routing/Router.php(825): Illuminate\Routing\Router->substituteBindings(Object(Illuminate\Routing\Route))
#4 /home/vagrant/Code/TaskManager/vendor/laravel/framework/src/Illuminate/Routing/Router.php(691): Illuminate\Routing\Router->findRoute(Object(Illuminate\Http\Request))
#5 /home/vagrant/Code/TaskManager/vendor/laravel/framework/src/Illuminate/Routing/Router.php(675): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#6 /home/vagrant/Code/TaskManager/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(246): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#7 [internal function]: Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#8 /home/vagrant/Code/TaskManager/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(52): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#9 /home/vagrant/Code/TaskManager/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(44): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#10 [internal function]: Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), 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]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#13 /home/vagrant/Code/TaskManager/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#14 [internal function]: Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#15 /home/vagrant/Code/TaskManager/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#16 /home/vagrant/Code/TaskManager/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(132): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#17 /home/vagrant/Code/TaskManager/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(99): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#18 /home/vagrant/Code/TaskManager/public/index.php(53): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#19 {main}
正在學(xué)習(xí)laravel中,新手一枚,希望各大神幫幫忙解決一下吧,十分感謝!!!上面代碼的縮進(jìn)問(wèn)題,望諒解。
人生最曼妙的風(fēng)景,竟是內(nèi)心的淡定與從容!