Xem Composer Phương pháp
tôi đã kết thúc bằng một nhà soạn nhạc xem trong một nhà cung cấp dịch vụ.
Trong phương pháp boot()
nhà cung cấp dịch vụ:
// Wildcard view composer
view()->composer('*', function($view) {
// Instantiate new DOMDocument object
$svg = new DOMDocument();
// Load SVG file from public folder
$svg->load(public_path('images/logo.svg'));
// Add CSS class (you can omit this line)
$svg->documentElement->setAttribute("class", "logo");
// Get XML without version element
$logo = $svg->saveXML($svg->documentElement);
// Attach data to view
$view->with('logo', $logo);
});
Và theo quan điểm của tôi:
<!-- Echo unescaped SVG content -->
{!! $logo !!}
Tôi đang sử dụng DOMDocument
vì nó cho phép tôi để loại bỏ các yếu tố phiên bản XML mà không phải ở trong HTML.
Lớp CSS không cần thiết nhưng giúp tôi gói biểu trưng bằng phần tử HTML khác để tạo kiểu.
Nếu bạn chỉ cần logo trong một Blade cụ thể từng phần như tiêu đề bạn có thể viết
view()->composer('header', function($view) {});
http://laravel.com/docs/5.0/views#view-composers
https://laracasts.com/series/laravel-5-fundamentals/episodes/25
Blade phần Phương pháp
Phương pháp này không phải là thực hành tốt nhất kể từ loại mã này không thực sự ở chế độ xem. Tuy nhiên nó rất đơn giản và tốt hơn nhiều so với việc thêm mã PHP vào mỗi khung nhìn.
Thực hiện một phần mới (cho phép nói logo.blade.php) với đoạn mã sau:
<?php
// Instantiate new DOMDocument object
$svg = new DOMDocument();
// Load SVG file from public folder
$svg->load(public_path('images/logo.svg'));
// Add CSS class (you can omit this line)
$svg->documentElement->setAttribute("class", "logo");
// Echo XML without version element
echo $svg->saveXML($svg->documentElement);
?>
Bây giờ bạn có thể sử dụng hình ảnh SVG trong một mẫu lưỡi bằng cách bao gồm các phần như sau:
@include('logo')
Nguồn
2015-05-19 15:17:55
là gì that .svg trông như thế nào? Nó là một hình ảnh sprites với các biểu tượng khác nhau? – ihue
Điều gì xảy ra khi bạn thực hiện ' Php include (" file.svg ")?>' Bạn có thấy gì không? – ihue
SVG là biểu trưng. Nên đã được file_get_contents() không bao gồm(), nhưng nó đã làm việc (khi SVG không có phần tử phiên bản XML). Tôi chỉ muốn tìm cách làm tốt hơn. –