Laravel - 从数据库生成CSS

时间:2014-08-19 18:22:00

标签: php mysql css laravel-4

是否可以使用Laravel(最新版​​)生成一个css文件"在飞行中"来自数据库的自定义css代码?
我已将自定义css代码存储在" custom_css" (longtext)在我的mysql数据库中。

我只是想我可以通过刀片输出:

<style type="text/css">{{$custom_css}}</style>  

但是,是否有可能在飞行中生成css&#34;&#34;并通过link-tag添加它?
通过刀片添加它可以扩展我的HTML代码,我不想要它。我想要一个干净的&#34; html&#34; (尽可能) 谢谢!

2 个答案:

答案 0 :(得分:3)

鉴于您的意见:

Route::get('/path/to/css', function() {
    // fetch your CSS and assign to $contents
    $response = Response::make($contents);
    $response->header('Content-Type', 'text/css');
    return $response;
});

答案 1 :(得分:0)

从数据库生成CSS与使用Laravel读取数据库值的方式相同。 这很简单。

下面的示例从设置表中检索css背景值并显示它:

table: settings
---------------------------------------------
| ID | border_color | font_color | bg_color |
---------------------------------------------
| 1  | #EF0404      | #48B014    | #121BCC  |

Model: Setting
--------------
protected $fillable = [
  'border_color', 'font_color', 'bg_color'  
];

Controller: HomeController
--------------------------
use App\Setting;

public function index(){
  $colors = Setting::orderBy('id', 'desc')->limit('1')->get();
  return view('home', [
    'colors' => $colors
  ]);
}

Route: home routing
-------------------
Route::get('/home', 'HomeController@index')->name('home');

View: home.blade.php
--------------------
<html>
   <head>
      //iterating throuhg your color schemes styling
      @if(!empty($colors))
         @foreach($colors as $color)
           <style type="text/css">
             .bg_color{
                background: {{ $color->bg_color }} !important;
             }
           </style>
         @endforeach()
      @endif
   </head>
   <body>
      <p class="bg_color">
         Generating CSS from database using Laravel. <br />
         This must work.
      </p>
   </body>
</html>

我希望这会对您有所帮助。