Reputation: 59
I have a problem access the functions of my controller, only the Controller.index works and all the others not working.
Routes
Route::get('Publications/datatables', 'publicationController@datatables')->name('Publications-datatables');
Route::resource('publications', 'publicationController');
Controller
<?php
namespace App\Http\Controllers;
use App\Http\Requests;
use App\Publication;
use DataTables;
use Illuminate\Http\Request;
class publicationController extends Controller
{
public function index()
{
$publications = Publication::get();
return view('Publications.index', compact('publications'));
}
public function create(Request $request)
{
return view('Publications.create');
}
public function store(Request $request)
{
$publication = Publication::create($request->all());
return redirect()->route('Publications.show', $publication->id)->with('success', trans('og.alert.success'));
}
public function show(Publication $publication)
{
return view('Publications.show', compact('publication'));
}
public function edit(Publication $publication)
{
return view('Publications.edit', compact('publication'));
}
public function update(Request $request, $id)
{
$data = $request->all();
$publication = Publication::find($id);
$publication->update($data);
return redirect()->route('Publications.show', $publication->id)->with('success', trans('og.alert.success'));
}
public function destroy($id, Request $request)
{
if ($publication = Publication::find($id)) {
$wasDeleted = $publication->delete();
}
return redirect()->route('Publications.index')->with('success', trans('og.alert.success'));
}
public function datatables()
{
$Publications = Publication::all();
return Datatables::of($Publications)
->editColumn('id', '<a href="{{route(\'Publications.show\', ["id" => $id])}}">{{$id}}</a>')
->addColumn('actions',
'<a class="btn btn-primary btn-xs" href="{{route(\'Publications.edit\', $id)}}" data-placement="top" data-toggle="tooltip" title="' . trans('og.button.tooltip.edit') . '" data-title="' . trans('og.button.tooltip.edit') . '" ><span class="glyphicon glyphicon-pencil"></span></a>
<form style="display:inline" action="{{route(\'Publications.destroy\', $id)}}" method="POST"><input type="hidden" name="_token" value="{{csrf_token()}}"><input type="hidden" name="_method" value="DELETE" ><span data-placement="top" data-toggle="tooltip" title="' . trans('og.button.tooltip.delete') . '"><button class="btn btn-danger btn-xs" type="submit" onclick="return confirm(\'' . trans('og.alert.confirm_deletion') . '\')" ><span class="glyphicon glyphicon-trash"></button></span></a></form>')
->rawColumns(['id', 'actions'])
->make(true);
}
}
Upvotes: 0
Views: 2020
Reputation:
Have you tried php artisan route:list
to verify your routes? If not, this is what your example generates:
| GET|HEAD | Publications/datatables | Publications-datatables | App\Http\Controllers\publicationController@datatables | web |
| GET|HEAD | publications | publications.index | App\Http\Controllers\publicationController@index | web |
| POST | publications | publications.store | App\Http\Controllers\publicationController@store | web |
| GET|HEAD | publications/create | publications.create | App\Http\Controllers\publicationController@create | web |
| PUT|PATCH | publications/{publication} | publications.update | App\Http\Controllers\publicationController@update | web |
| DELETE | publications/{publication} | publications.destroy | App\Http\Controllers\publicationController@destroy | web |
| GET|HEAD | publications/{publication} | publications.show | App\Http\Controllers\publicationController@show | web |
| GET|HEAD | publications/{publication}/edit | publications.edit | App\Http\Controllers\publicationController@edit | web |
The routes are case sensitive. Perhaps you should use an uppercase 'P" if that's what you are looking to do.
Route::resource('Publications', 'publicationController');
Upvotes: 1