Je suis nouveau à Laravel et j'essaie de charger l'en-tête, le pied de page et le fichier de vue du contrôleur dans un modèle commun et d'afficher les données du contrôleur dans le fichier de vue. Mais je suis obtenir l'erreur View ['admin.dashboard'] not found.
Le fichier de tableau de bord est présent dans le dossier admin à l'intérieur des vues
manette
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class common extends Controller
{
public function login()
{
$data['title'] = 'Dashboard';
$data['template'] = 'admin/dashboard';
return view('common_template', compact('data'));
}
}
common_template.blade View
<?php echo View::make('includes/header'); ?>
<?php echo $template = "'".$data['template']."'";
echo View::make($template); ?>
<?php echo View::make('includes/footer'); ?>
Quand j'ajoute 'admin/dashboard' au lieu de $data['template']
directement dans $template
, il charge le fichier de tableau de bord alors qu'il ne se charge pas lorsque je le passe sous forme de chaîne à partir du contrôleur.
Vue du tableau de bord.blade
<p><?php echo $data['title']; ?></p> //printing the data from the controller
Aidez-moi à passer à travers ça. Merci
Pour inclure le modèle de lame dans un autre modèle, utilisez @include
:
@include('admin.dashboard')
Ou
@include($data['template']) // This should be the name of template, like 'admin.dashboard', but not path
Vérifiez également si la vue porte le nom correct et se trouve dans le bon répertoire:
resources/views/admin/dashboard.blade.php
Pour inclure un modèle de lame dans un autre modèle,
layouts/index.blade.php
<head>
<!-- Site Title -->
<title>{{ $title }}</title> //dynamic title
<link rel="stylesheet" href="{{ asset('website/css/main.css') }}">
@stack('css') //internal css
</head>
<body>
@include('../website/layouts/header')//include header
@yield('content')//include content
@include('../website/layouts/footer') //include footer
<!-- start footer Area -->
<!-- End footer Area -->
<script src="{{asset('website/js/vendor/jquery-2.2.4.min.js ') }}"></script>
@stack('js')//internal js
</body>
</html>
layouts/footer.blade.php
// footer code
<h1>This area for footer code
layouts/header.blade.php
// headercode
<h1>This area for headercode
/home.blade.php
<?php $title = "dynamic title"; ?> //title
@extends('layouts/index') //include index page
@Push('css') // this is for internal js
*{
color:black;
}
@endpush
@section('content') //section for content
This area for home page content
@stop // content ended
@Push('js') // this is for internal js
<script>
$(document).ready(function(){
var loggedIn={!! json_encode(Auth::check()) !!};
$('.send').click(function() {
if(!loggedIn){
moda.style.display = "block";
return false;
}
});
});
@endpush
Tout d’abord, votre code doit être corrigé conformément à la norme du code de la lame Laravel. Essayez ci-dessous le code:
common_template.blade Voir
@include('includes.header')
@yield('content')
@include('includes.footer')
Vue du tableau de bord.blade
@extends('common_template')
@section('content')
{{$data['title']}}
@endsection