it-swarm.com.de

Variable vom Controller zur Ansicht übergeben - Laravel

Ich versuche, eine Variable von einer Ansicht an einen Controller an eine andere Ansicht zu übergeben. Ich bekomme keine Fehler, aber wenn die letzte Ansicht angezeigt wird, wird die Variable nicht wie erwartet angezeigt. Auf den ersten Blick bekomme ich nur einen Namen. 

{{ Form::open(array('route' => 'form', 'method'=>'post')) }}
    {{ $name = Form::text('name') }}
    {{ Form::submit('Go!') }}
{{ Form::close() }}

Hier ist meine HomeController.php.

public function view1()
{
    return View::make('stuff');
}

public function postView1($name)
{
    return Redirect::route('view2')->with($name);
}

public function view2($name)
{
    return View::make('view2')->with($name);
}

routen.php

Route::get('/', array('as' => 'stuff', 'uses' => '[email protected]'));
Route::post('form/{name}', array('as' => 'form', 'uses'=>'[email protected]'));
Route::get('view2/{name}', array('as' => 'view2', 'uses' => '[email protected]'));

view2.blade.php

{{ $name = Input::get('name') }}
<p> Hello, {{ $name }} </p>

Warum wird es nicht angezeigt?

6
porcupine92

Zuerst sollten Sie Ihre postView-Funktion ändern in:

public function postView1()
{
    return Redirect::route('view2', ['name' => Input::get('name')]);
}

Und deine Route:

Route::post('form/{name}', array('as' => 'form', 'uses'=>'[email protected]'));

in:

Route::post('form', array('as' => 'form', 'uses'=>'[email protected]'));

Nun sollten Sie Ihre view2-Funktion ändern in:

public function view2($name)
{
    return View::make('view2')->with('name',$name);
}

Nun sollten Sie in Ihrem view2.blade.php verwenden können:

<p> Hello, {{ $name }} </p>
12

Sie müssen die Variable benennen:

public function view2($name)
{
    return View::make('view2')->with('name', $name);
}
2
Laurence
class HomeController extends Controller {
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {

    }

    public function index()
    {
        $data = array (
            'title'=>'My App yo',
            'Description'=>'This is New Application',
            'author'=>'foo'
        );
        return view('home')->with($data);;
    }
}
1
Sumesh Ps

Was fehlt, sind andere Antworten, direkt aus Laravel docs :

Da die with -Methode Daten zur Sitzung blinkt, können Sie die Daten mit der typischen Session :: get -Methode abrufen.

Statt {{$name}} schreiben Sie {{Session::get('name')}}.

0
cha-cha

Versuchen Sie die Form, wenn Sie die Methode POST verwenden, weshalb das Setzen der Variablen in der Route direkt mit den Post-Daten an Ihre Funktion geht.

{{ Form::open(array('url' => 'form', 'method'=>'post')) }}
    {{Form::text('name') }}
    {{ Form::submit('Go!') }}
{{ Form::close() }}

route :-

Route::post('form','[email protected]');

reglerfunktion: -

public function postView1() {
  $data = Input::all();
  return Redirect::route('view2')->with('name', $data['name']);
}

und erhalten Sie Daten auf view2: -

<p> Hello, {{ $name }} </p>

Für mehr folgen HIER

0
Rakesh Sharma