2014-07-03 28 views
8

Nếu tôi có bố cục được gọi là RightSideBar.blade.php trong lưỡi Laravel, một vùng sản lượng ('nội dung') và lợi nhuận khác ('thanh bên'). Có cách nào được xây dựng để hiển thị một phần mặc định nếu chế độ xem đang mở rộng RightSideBar không có phần ('thanh bên') không? (Tôi biết bạn có thể vượt qua một giá trị mặc định, chỉ tự hỏi nếu có một cách để làm mặc định một phần)Lưỡi Laravel: Bạn có thể tạo một phần mặc định

+4

Thực sự đơn giản, mặc dù các tài liệu chỉ định mặc định chỉ như một chuỗi bạn có thể thực sự vượt qua chế độ xem @yield ('sidebar', \ View :: make ('defaultSidebar')) – user3238419

+2

Nếu nhận xét của bạn là những gì bạn xem xét một câu trả lời, sẽ là tốt hơn để đăng bình luận của bạn như là một câu trả lời. – lozadaOmr

Trả lời

16

Có bạn có thể vượt qua một mặc định

Nhìn vào documentation

@yield('sidebar', 'Default Content');

Về cơ bản, đặt kết quả mặc định khi mẫu con không có @section('sidebar')

+1

điều này là không chính xác. để hiển thị một phần, bạn không thể vượt qua một chuỗi, thay vì làm như @ user3238419 gợi ý ở trên, làm View :: make (pathtoview) – Juan

+0

Tôi nghĩ OP đã đề cập rằng anh ta biết rằng anh ta có thể làm điều đó như đã đề cập trên bình luận. Câu trả lời của tôi có sai không vì tôi đã nói một ví dụ như một sợi dây chứ không phải là một lưỡi kiếm? – lozadaOmr

+0

có bởi vì anh ta đã nói rõ ràng: "Tôi biết bạn có thể chuyển giá trị theo mặc định .." và câu hỏi cũng yêu cầu một phần chứ không phải một chuỗi đơn giản. – Juan

4

Hầu hết thời gian chúng tôi muốn nội dung mặc định nhiều dòng, chúng tôi có thể sử dụng cú pháp này:

@section('section') 
    Default content 
@show 

Ví dụ tôi có điều này trong các mẫu file:

@section('customlayout') 
    <article class="content"> 
     @yield('content') 
    </article> 
@show 

Bạn có thể thấy sự khác biệt giữa @show và @ dừng/@ endsection: mã trên là tương đương với một dưới đây:

@section('customlayout') 
    <article class="content"> 
     @yield('content') 
    </article> 
@stop 

@yield('customlayout') 

Trong file view khác tôi có thể một trong hai thiết lập các nội dung chỉ:

@section('content') 
    <p>Welcome</p> 
@stop 

Hoặc tôi cũng có thể thiết lập một cách bố trí khác nhau:

@section('content') 
    <p>Welcome</p> 
@stop 
@section('defaultlayout') 
    <div> 
     @yield('content') 
    </div> 
@stop 

Các @stop tương đương như @endsection.

Các vấn đề liên quan