1
Laravel 5의 한 컨트롤러에서 하나 이상의보기로 배열을 전달하는 방법에 대한 질문이 있습니다. 가능합니까? 하나의 함수 index()에서 index.blade.php에 배열을 전달하고 home.blade.php에 배열을 전달하고 싶습니다. 인덱스 페이지에는 모든 데이터가 표시되지만 홈페이지에는 몇 가지 정보 만 표시됩니다. 여기서 아래의 코드는하나의 컨트롤러에서 둘 이상의보기로 배열을 전달 하시겠습니까? Laravel 5
컨트롤러 :
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Requests\EdisiRequest;
use App\Edisi;
use Session;
use Storage;
class EdisiController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$edisi_list = Edisi::all();
return view('edisi/index', compact('edisi_list'));
}
}
home.blade.php
@extends('template')
@section('main')
<div class="container sitecontainer bgw">
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12 m22 single-post">
@if (count($edisi_list) > 0)
<div class="reviewlist review-posts">
<?php foreach ($edisi_list as $edisi): ?>
<div class="post-review col-md-4 col-sm-12">
<div class="post-media entry">
<a href="#" title="">
<img src="{{ asset('fotoupload/' . $edisi->cover) }}" alt="fotoupload/coveredisi.png" class="img-responsive" style="height: 480px; width: 1200px;">
</a>
</div><!-- end media -->
<div class="post-title">
<h4 style="text-align: center;"><a href="#">{{ $edisi->judul }}</a></h4>
</div><!-- end post-title -->
</div><!-- end post-review -->
<?php endforeach ?>
</div><!-- end review-posts -->
@else
<p>Tidak ada data edisi.</p>
@endif
</div><!-- end col -->
</div><!-- end row -->
<div class="row">
<div class="pagination-wrapper text-center">
<nav>
<ul class="pagination">
<li>
<a href="#" aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
</li>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li>
<a href="#" aria-label="Next">
<span aria-hidden="true">»</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div><!-- end container -->
@stop
I의 또 다른 제어함으로써 시도
@extends('template')
@section('main')
<div class="container sitecontainer bgw">
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12 m22 single-post">
<div id="siswa">
<h2>Daftar Edisi</h2>
@if (count($edisi_list) > 0)
<table class="table">
<thead>
<tr>
<th>Judul</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php foreach ($edisi_list as $edisi): ?>
<tr>
<td>{{ $edisi->judul }}</td>
<td>
<div class="box-button">
{{ link_to('edisi/' . $edisi->id, 'Detail', ['class' => 'btn btn-success btn-sm']) }}
</div>
<div class="box-button">
{{ link_to('edisi/' . $edisi->id . '/edit', 'Edit', ['class' => 'btn btn-warning btn-sm']) }}
</div>
<div class="box-button">
{!! Form::open(['method' => 'DELETE', 'action' => ['[email protected]', $edisi->id]]) !!}
{!! Form::submit('Delete', ['class' => 'btn btn-danger btn-sm']) !!}
{!! Form::close() !!}
</div>
</td>
</tr>
<?php endforeach ?>
</tbody>
</table>
@else
<p>Tidak ada data edisi.</p>
@endif
<div class="tombol-nav">
<a href="edisi/create" class="btn btn-primary">Tambah Edisi</a>
</div>
</div> <!--/#jurnal -->
</div><!-- end col -->
</div><!-- end row -->
</div><!-- end container -->
@stop
index.blade.php 홈 페이지,하지만 여전히 작동하지 않는, 그것은 항상 "$ edisi_list 정의되지 않은 변수"오류를 보여줍니다. 거기에 또 다른 방법이 있다면 저에게 보여주세요, 고마워요!
EdisiServiceProvider.php
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use App\Edisi;
class EdisiServiceProvider extends ServiceProvider {
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot() {
View::composer(['edisi/index', 'pages/home'], function ($view) {
$edisi_list = Edisi::all();
$view->with('edisi_list', $edisi_list);
});
}
/**
* Register the application services.
*
* @return void
*/
public function register() {
//
}
}
를? 실례합니다.하지만이 코드를 어디에 넣어야합니까? @alexey –
예, 서비스 공급자를 생성해야합니다. 위의 링크를 따라 예제 코드를 찾을 수 있습니다. 클로저를 사용하지 않으려면 뷰 작성자 클래스도 만들어야합니다. –
좋아요, 고마워요 –