Problème de variable non défini
Bonjour,
Je suis face à une problématique que je pensais parvenir à résoudre par moi même en parcourant de nombreux tutoriel pour parvenir à modeler se que je voulais effectué. J'essais de récupérer des informations d'une table de la base de donné lié à mon projet Laraval, mais il semble que j'ai fait une erreur quelques parts dans mes codes.
Voici l'erreur en question : Imgur
Le code de la vue exercises.blade.php :
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-lg-4"></div>
<div class="col-lg-8">
@foreach($exercises as $exercise)
<div class="card">
<div class="card-header">
<h5 class="card-title">
{{ $exercise->name }}
</h5>
</div>
<div class="card-body">
<div class="row">
<div class="col-lg-2">
<?php if( $exercise->mainmedia == 0) {?>
<img src="{{ $exercise->mainmedia }}">
<?php }else{ ?>
<video width="320" height="240" controls>
<source src="$exercise->mainmedia" type="video/mp4">
</video>
<?php } ?>
</div>
<div class="col-lg-6">
<div class="row"><p>Équipement :</p>{{ $exercise->equipment }}</div>
<div class="row"><p>Type :</p>{{ $exercise->type }}</div>
<div class="row"><p>Muscle principal :</p>{{ $exercise->mainmuscle }}</div>
</div>
</div>
</div>
</div>
@endforeach
</div>
</div>
</div>
@endsection
Mon modèle Exercises.php :
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Exercises extends Model
{
protected $fillable = array('name', 'equipment', 'type', 'mainmuscle', 'config', 'guide', 'mediatype', 'mainmedia', 'media1', 'media2', 'media3', 'media4', 'media5', 'media6');
}
Mon contrôleur ExercisesController.php :
<?php
namespace App\Http\Controllers;
use App\Exercises;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class ExercisesController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$exercises=Exercises::all();
return view('/exercises');
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param \App\Exercises $exercises
* @return \Illuminate\Http\Response
*/
public function show(Exercises $exercises)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Exercises $exercises
* @return \Illuminate\Http\Response
*/
public function edit(Exercises $exercises)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Exercises $exercises
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Exercises $exercises)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\Exercises $exercises
* @return \Illuminate\Http\Response
*/
public function destroy(Exercises $exercises)
{
//
}
}
Puis ma route dans web.php :
<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Route::get('profile', 'UserController@profile');
Route::post('profile', 'UserController@update');
Route::post('profile', 'UserProfileController@update')->middleware('auth')->name('profile.update');
Route::get('exercises', 'ExercisesController@index')->name('exercises');
Si quelqu'un peu me donner un coup de main afin que je puisse avancé, j'apprécierais grandement ou bien me transmettre un meilleur tutoriel qui pourrait me permettre de faire l'affichage de chaque exercice contenus dans ma table, j'en serais très heureux.
Pour répondre à ton soucis tu dois envoye ta variable dans la vue
Comme ceci:
public function index()
{
$exercises=Exercises::all();
return view('/exercises',compact('exercises');
}
Sinon http://laravel.sillo.org/ de Bestmomo est un excellent site sur laravel et en français même si l'anglais est obligé pour se perfectionner ;)
Merci beaucoup Farris27!
Je débute avec Laravel et je ne maîtrise pas suffisament ses subtilités.
De rien c'est un plaisir d'aider ;)
Attention appeler ::all() n'est pas toujours la solution ;)
public function index() {
$adh = accueil::all();
return view('gestionnaireProduction-la',compact('adh'));
}
j'ai ca et pourtant dans ma vue cela m'affiche que la variable n'est pas defini
Vous ne pouvez pas répondre à ce sujet.