Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

problemas con blade

Estas en el tema de problemas con blade en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, estoy empezando a ver laravel y estoy un poco perdido, el problema es que no me coge las vistas blade. Mi aplicación contiene en ...
  #1 (permalink)  
Antiguo 29/10/2014, 03:56
 
Fecha de Ingreso: octubre-2014
Mensajes: 1
Antigüedad: 9 años, 5 meses
Puntos: 0
problemas con blade

Hola, estoy empezando a ver laravel y estoy un poco perdido, el problema es que no me coge las vistas blade.

Mi aplicación contiene en routes.php

Route::model('game', 'Game');

Route::get('/', 'GamesController@index');

el controlador app/controllers/GamesController.php

class GamesController extends BaseController
{
public function index()
{
// Show a listing of games.
$games = Game::all();
return View::make('index', compact('games'));
}
}

y las vistas

app/views/layout.blade.php

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Games Collection</title>
<link rel="stylesheet" href="{{ asset('css/bootstrap.css') }}" />
</head>
<body>
<div class="container">
<nav class="navbar navbar-default" role="navigation">
<div class="navbar-header">
<a href="{{ action('GamesController@index') }}" class="navbar-brand">Games Collection</a>
</div>
</nav>
@yield('content')
</div>
</body>
</html>

app/views/index.blade.php

@extends('layout')

@section('content')
<div class="page-header">
<h1>All Games <small>Gotta catch 'em all!</small></h1>
</div>

<div class="panel panel-default">
<div class="panel-body">
<a href="{{ action('GamesController@create', $game->id) }}" class="btn btn-primary">Create Game</a>
</div>
</div>

@if ($games->isEmpty())
<p>There are no games! :(</p>
@else
<table class="table table-striped">
<thead>
<tr>
<th>Title</th>
<th>Publisher</th>
<th>Complete</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
@foreach($games as $game)
<tr>
<td>{{ $game->title }}</td>
<td>{{ $game->publisher }}</td>
<td>{{ $game->complete ? 'Yes' : 'No' }}</td>
<td>
<a href="{{ action('GamesController@edit', $game->id) }}" class="btn btn-default">Edit</a>
<a href="{{ action('GamesController@delete', $game->id) }}" class="btn btn-danger">Delete</a>
</td>
</tr>
@endforeach
</tbody>
</table>
@endif
@stop

Creo que son las vistas por que si cambio el nombre de index.blade.php a index.php me entra aunque mostrandome el codigo laravel como texto, el erro que me da es Undefined variable: game (View: C:\xampp\htdocs\games\app\views\index.blade.php), he provado a cambiar el código del controlador a

$games = new Game();
$games = Game::all();
return View::make('index', compact('games'));

o tambien

$games = new Game();
$games = Game::all();
return View::make('index', $games);

y me sigue dando el error de variable indefinida, no se que estoy haciendo mal.

Gracias, saludos
  #2 (permalink)  
Antiguo 07/11/2014, 04:59
 
Fecha de Ingreso: enero-2006
Ubicación: Pina (Mallorca -Illes Balears-)
Mensajes: 348
Antigüedad: 18 años, 3 meses
Puntos: 28
Respuesta: problemas con blade

Si no voy mal te debe estar dando error en la linea donde pones:

Cita:
@if ($games->isEmpty())
Si te fijas cuando envias la variable $games a la vista haces esto:

Cita:
return View::make('index', compact('games'));
Lo que estás enviando es un array de clave => valor que contiene lo que estaba dentro de la variable $games, no la variable en si.

Creo que con algo así como:

Cita:
return View::make('index', array('games' => $games));
Debería funcionarte.

Ya me dirás.
__________________
Comprar vino mallorquin

Etiquetas: laravel
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:40.