webentwicklung-frage-antwort-db.com.de

ID durch einen Link weiterleiten Laravel

ist es möglich, id durch einen Link href in Laravel zu übergeben und diese Seite wie/projects/display/2 anzuzeigen.

Ich habe diesen Link:

<td><a href="{{ url('projects/display', $projects->id) }}" class="btn btn-info">View</a></td>

Es zeigt die ID an, wenn Sie als/projects/display/2 über den Link zeigen. Aber wenn ich auf den Link klicke, bekomme ich eine Fehlermeldung:

 Sorry, the page you are looking for could not be found.

Ich habe eine Ansichtseinstellung namens Projekte/Anzeige sowie Routen und Controller.

routen:

<?php


Route::group(['middleware' => ['web']], function (){

    Route::get('/', '[email protected]');

    Route::get('/login', '[email protected]');

    Auth::routes();

    Route::get('/home', '[email protected]');

    Route::get('/projects/display', '[email protected]');

    Route::resource('projects', 'ProjectsController');


});

Regler:

<?php

namespace App\Http\Controllers;

use App\project;
use App\Http\Requests;
use Illuminate\Http\Request;
use Session;

class ProjectsController extends Controller
{

    public function index()
    {



    }


    public function create()
    {
        return view('projects.create');
    }



    public function store(Request $request)
    {
        $this->validate($request, array(

            'name' => 'required|max:200',
            'description' => 'required'
        ));

        $project = new project;

        $project->name = $request->name;
        $project->description = $request->description;

        $project->save();

         Session::flash('success', 'The project was successfully created!');

        return redirect()->route('projects.show', $project->id);


    }


    public function show()
    {
        $project = Project::all(); 

        return view('projects.show')->withProject($project);

    }


    public function edit($id)
    {
        //
    }


    public function update(Request $request, $id)
    {
        //
    }

    public function getDisplay($id){


        $project = Project::find($id);

        return view('projects/display')->withProject($project);

    }





}
4
steven

Sie müssen Ihre Route ändern in:

Route::get('/projects/display/{id}', '[email protected]');

Und dann generiere URL mit:

{{ url('projects/display/'.$projects->id) }}
8
Alexey Mezenin

Was Sie suchen, ist eine parametrisierte Route. Weitere Informationen finden Sie hier: https://laravel.com/docs/5.3/routing#required-parameters

0
Daan Meijer