Im Moment erstelle ich einen Blog in Laravel, um PHP/Laravel zu lernen. Das Problem ist, dass im bekommen:MethodNotAllowedException, wenn ich auf die Schaltfläche klicke, um zu einer anderen Ansicht umzuleiten
MethodNotAllowedHttpException in RouteCollection.php Linie 218:
ich eine Tabelle, wo ich alle Beiträge mit den Tasten „Ansicht“ zeigen und „Edit“ für jeden Beitrag. Sie leiten die entsprechende Ansicht mit der id
um und sie funktionieren gut. Wenn ich einen Beitrag zur Ansicht öffne, gibt es auch eine Schaltfläche zum Bearbeiten und hier bekomme ich den Fehler, wenn ich darauf klicke und ich weiß nicht warum.
show.blade.php // dies ist der "View" für den Posten
<div class="row">
<div class="col-md-8">
<h1>{{ $post->title }}</h1>
<p class="lead">{{ $post->body }}</p>
</div>
<div class="col-md-4">
<div class="well">
<dl class="dl-horizontal">
<dt>Created at:</dt>
<dd>{{ date('d M, y H:i', strtotime($post->created_at)) }}</dd>
</dl>
<dl class="dl-horizontal">
<dt>Last Updated:</dt>
<dd>{{ date('d M, y H:i', strtotime($post->updated_at)) }}</dd>
</dl>
<hr>
<div class="row">
<div class="col-sm-6">
<form method="POST" action="{{ route('posts.edit', $post->id) }}">
<input type="submit" value="Edit" class="btn btn-primary btn-block">
<input type="hidden" name="_token" value="{{ Session::token() }}">
</form>
</div>
<div class="col-sm-6">
<form method="POST" action="{{ route('posts.destroy', $post->id) }}">
<input type="submit" value="Delete" class="btn btn-danger btn-block">
<input type="hidden" name="_token" value="{{ Session::token() }}">
</form>
</div>
</div>
</div>
</div>
</div>
edit.blade.php
<div class="row">
<form method="POST" action="{{ route('posts.update', $post->id) }}">
<div class="row">
<div class="col-md-8">
<div class="form-group">
<label for="title">Title:</label>
<textarea type="text" class="form-control input-lg" id="title" name="title" rows="1"
style="resize:none;">{{ $post->title }}</textarea>
</div>
<div class="form-group">
<label for="body">Body:</label>
<textarea type="text" class="form-control input-lg" id="body" name="body"
rows="5">{{ $post->body }}</textarea>
</div>
</div>
<div class="col-md-4">
<div class="well">
<dl class="dl-horizontal">
<dt>Created at:</dt>
<dd>{{ date('M j, Y h:i:sa', strtotime($post->created_at)) }}</dd>
</dl>
<dl class="dl-horizontal">
<dt>Last updated:</dt>
<dd>{{ date('M j, Y h:i:sa', strtotime($post->updated_at)) }}</dd>
</dl>
<hr>
<div class="row">
<div class="col-sm-6">
<a href="{{ route('posts.show', $post->id) }}" class="btn btn-danger btn-block">Back</a>
</div>
<div class="col-sm-6">
<button type="submit" class="btn btn-success btn-block">Save</button>
<input type="hidden" name="_token" value="{{ Session::token() }}">
{{ method_field('PUT') }}
</div>
</div>
</div>
</div>
</div>
</form>
</div>
PostController.php // Dies ist der Controller, wenn Sie es auch benötigen
class PostController extends Controller {
public function index()
{
//
$posts = Post::all();
return view('posts/index')->withPosts($posts);
}
public function create()
{
// return create new post form
return view("posts/create");
}
public function store(Request $request)
{
// Validate data
$this->validate($request, array(
'title' => 'required|max:255',
'body' => 'required'
));
// store data in db
$post = new Post;
$post->title = $request->title;
$post->body = $request->body;
$post->save();
Session::flash('success', 'The blog post was successfully saved!');
// redirect if succesfull
return redirect()->route('posts.show', $post->id);
}
public function show($id)
{
//
$post = Post::find($id);
// redirect to view
return view('posts/show')->with('post', $post);
}
public function edit($id)
{
//
$post = Post::find($id);
return view('posts/edit')->with('post', $post);
}
public function update(Request $request, $id)
{
//
}
public function destroy($id)
{
//
}
}
Und Ihre Routen? –
Können Sie Ihre Routen angeben? Wahrscheinlich verwenden Sie eine falsche Methode in Ihren Routen (erhalten statt Post). –
'Route :: get ('Kontakt', 'SeitenController @ getContact'); Route :: get ('über', 'SeitenController @ getAbout'); Route :: get ('/', 'SeitenController @ getIndex'); Route :: Ressource ('Beiträge', 'PostController'); ' – Denisx