2016-12-16 3 views
0

Ich versuche ein Formular zu übergeben. Ich verwende Request-Methode, um Variablen zu erhalten. hier ist meine Klinge einer Form:Laravel Post wird nicht abgeholt?

<div class="add_photo"> 
<h1>Add a photo</h1> 
    <form action="{{Route('postPhoto')}}"> 
     <span>Name: </span> 
     <input type="text" name="title"> 
     <span>File: </span> 
     <input type="text" name="file"> 
     <input type="submit" value="Add"> 
     <input type="hidden" name="_token" value="{{ Session::token() }}"> 
    </form> 
</div> 

Routen beteiligt: ​​

Route::get('/admin/gallery', '[email protected]')->name('manageGallery'); 
Route::post('/admin/gallery', '[email protected]')->name('postPhoto'); 

Und das ist mein Controller dafür:

class GalleryController extends Controller 
{ 
    public function manageGallery() { 
     return view('home.manageGallery'); 
    } 

    public function postPhoto(Request $request) { 
     die("works"); 
    } 
} 

Es ist nicht an mich nicht werfen Fehler. Es tut einfach nichts. Meine Frage ist also: verwende ich diese Methode falsch oder brauche ich etwas mehr? Danke im Voraus.

+0

Ich sehe nicht, was Sie erwarten, dies zu tun. Haben Sie versucht, 'dd ($ request)' in 'postPhoto()' – Spholt

+0

Ich tat. und es gibt nichts zurück. – amberbrew

+0

Ich würde gerne sehen, dass die postPhoto() erhält die Variablen gebucht. Entschuldigung für doppelten Kommentar. – amberbrew

Antwort

0

Zunächst sicherstellen, dass das Formular, das Sie verwenden, ist die richtige Methode für Ihre Route

<div class="add_photo"> 
    <h1>Add a photo</h1> 
    <form action="{{Route('postPhoto')}}" method="post"> 
     <span>Name: </span> 
     <input type="text" name="title"> 
     <span>File: </span> 
     <input type="text" name="file"> 
     <input type="submit" value="Add"> 
     <input type="hidden" name="_token" value="{{ Session::token() }}"> 
    </form> 
</div> 

In Ihrem Controller verwenden, setzen Sie die folgenden in der postPhoto Funktion

public function postPhoto(Request $request) 
{ 
    dd($request); 
} 

Sie sollten jetzt bekommen aObjekt Ausgabe auf dem Bildschirm, wenn Sie das Formular senden

+0

Danke. Mein tatsächliches Problem war einfach. Ich habe die Methode nicht angegeben. – amberbrew

0

Sie möchten Blade Forms in ord verwenden er machen Formen in eine natürlichere Art und Weise für Laravel

{{ Form::open(['route' => '/admin/gallery', 'method' => 'post', 'files' => true]) }} 

    {{ Form::text('title') }} 

    {{ Form::label('title', 'Name :') }} 

    {{ Form::file('file') }} 

    {{ Form::label('file', 'File :') }} 

    {{ Form::submit('Add') }} 

{{ Form::close() }} 

Es reduziert den Aufwand der Zugabe des Token selbst, da es automatisch hinzugefügt wird, wenn das Formular Fassade mit.

Und dann, in Ihrem Controller, würden Sie so etwas zu debuggen tun, wenn Sie das Formular absenden:

<?php 

use Request; /* do not forget this line */ 

class GalleryController extends Controller 
{ 
    public function postPhoto(Request $request) 
    { 
     dd($request->toArray()); 
    } 
} 
+0

tahnks. Ich werde mich darum kümmern müssen. – amberbrew

Verwandte Themen