links controller

Par imen, il y a 9 ans


Bonjour,
Action App\Http\Controllers\LinksController@show not defined. (View: C:\Users\user\pfe17\resources\views\links\success.blade.php)
voila le code linksController

<?php namespace App\Http\Controllers; use App\Link; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use App\Http\Requests; use Illuminate\Support\Facades\Input; use Illuminate\Support\Facades\Redirect; class linksController extends Controller { /** * @param $id * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector */ public function show($id){ $link = Link::findOrFail($id); return Redirect($link->url, 301); } public function create(){ return view ('links.create'); } public function store(){ $url=Input::get('url'); $link = Link::firstOrCreate(['url'=>$url]); return view('links.success', compact('link')); } }

et le code success.blade.php

@extends('default') @section('content') <h1> BRAVO! </h1> <p> <a class="btn btn-primary" href="{{action('LinksController@show',['id=>$link->id'])}}"> {{route('link.show',$link)}} </a> </p> @stop

j ai pa comris ou le probleme !!
j ai besoin d votre aide
merci d avance

5 réponses

Azorgh, il y a 9 ans

Bonjour,

Tu devrais rechercher un petit peu plus la résolution de tes problèmes.
Prend le soucis depuis le début. L'erreur dit : Action App\Http\Controllers\LinksController@show not defined
Donc il ne trouve pas la méthode show() dans LinksController.

Je vais dans LinksController, il y a bien une méthode show, bizarre. Mais quand tu regarde, c'est linksController et non pas LinksController.

Fais bien attention au majuscules dans tes controllers.

imen, il y a 9 ans

j ai corrigé, mais reste la mm faute

Azorgh, il y a 9 ans

Il faut aussi probablement modifier le nom du fichier. Refais tout le chemin entre la route => controller => vue et tout ça.
De plus, tu as un soucis sur cette ligne :

<a class="btn btn-primary" href="{{action('LinksController@show',['id=>$link->id'])}}">

Je te conseille de revoir les base de PHP sur le système de tableaux.

imen, il y a 9 ans

ça marche merci
j ai une autre problem
j ai crée un tab posts par la commande : php artisan make:migration create_posts_table --create
puis j ai mis le code :

<?php use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; use Illuminate\Support\Facades\Schema; class CreatePostsTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('posts', function (Blueprint $table) { $table->increments('id'); $table->string('title'); $table->string('slug')->unique(); $table->longText('content'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::drop('posts'); } }

puis j ai fait php artisan migrate, le prob dans la base de donnée il n y a pa create_at et update_at
j c pa pk !
merci d'avance

Azorgh, il y a 9 ans

Bonjour,

Juste un petit effort sur le language SMS ce serait pas mal, merci :)

Pour ton problème, je pense que tu as migrate avant d'ajouter la ligne $table->timestamps.
Il faut donc que tu rollback, puis que tu re-migrate pour l'ajouter correctement.