在 blade-view 中添加 HTML 片段
Adding HTML snippets in the blade-view
我正在使用我的自定义 js 播放器创建 laravel 项目。它已经完成并正在运行,所以我需要在页面上显示带有歌曲的 div,但我不知道这样做的最佳做法是什么。
我尝试了什么:
我有一个歌曲模型,我在其中添加了显示歌曲的方法。
{
static public function displaySongs()
{
$songs = Song::all();
echo "<div class='ostContainer'>";
foreach ($songs as $song) {
$song->displayOne();
}
echo "<div>";
return $songs;
}
public function displayOne()
{
$songname = substr($this->name, 0, -4);
echo "<div class='songContainer noselect'
data-audio='$this->path$this->name'
data-songid='$this->id'
data-songname='$songname'>$songname</div>";
}
}
以及 blade 视图:
@extends('layout.layout')
@section('content')
<audio id="audio"></audio>
@include('player._playercontainer')
<?php App\Song::displaySongs() ?>
@endsection
这完全符合预期,但我觉得这段代码是错误的。
有没有更好的方法来解决这个问题?
Laravel 版本:5.8.*.
您可以在您的视图中执行大部分操作。做类似的事情:
public function displaySongs()
{
return view('songs')->with([
'songs' => Song::all()
]);
}
那么在你看来:
@extends('layout.layout')
@section('content')
<audio id="audio"></audio>
@include('player._playercontainer')
<div class='ostContainer'>
@foreach ($songs as $song)
@php
$songname = substr($song->name, 0, -4);
@endphp
<div class='songContainer noselect'
data-audio='{{$song->path}}{{$song->name}}'
data-songid='{{$song->id}}'
data-songname='{{$songname}}'>
{{$songname}}
</div>
@endforeach
</div>
@endsection
作为一般规则,您希望模型中的逻辑、瘦控制器以及视图中的所有 HTML。不过在本例中,逻辑非常简单,您只需在视图中即时设置一个变量即可。
我正在使用我的自定义 js 播放器创建 laravel 项目。它已经完成并正在运行,所以我需要在页面上显示带有歌曲的 div,但我不知道这样做的最佳做法是什么。
我尝试了什么: 我有一个歌曲模型,我在其中添加了显示歌曲的方法。
{
static public function displaySongs()
{
$songs = Song::all();
echo "<div class='ostContainer'>";
foreach ($songs as $song) {
$song->displayOne();
}
echo "<div>";
return $songs;
}
public function displayOne()
{
$songname = substr($this->name, 0, -4);
echo "<div class='songContainer noselect'
data-audio='$this->path$this->name'
data-songid='$this->id'
data-songname='$songname'>$songname</div>";
}
}
以及 blade 视图:
@extends('layout.layout')
@section('content')
<audio id="audio"></audio>
@include('player._playercontainer')
<?php App\Song::displaySongs() ?>
@endsection
这完全符合预期,但我觉得这段代码是错误的。 有没有更好的方法来解决这个问题?
Laravel 版本:5.8.*.
您可以在您的视图中执行大部分操作。做类似的事情:
public function displaySongs()
{
return view('songs')->with([
'songs' => Song::all()
]);
}
那么在你看来:
@extends('layout.layout')
@section('content')
<audio id="audio"></audio>
@include('player._playercontainer')
<div class='ostContainer'>
@foreach ($songs as $song)
@php
$songname = substr($song->name, 0, -4);
@endphp
<div class='songContainer noselect'
data-audio='{{$song->path}}{{$song->name}}'
data-songid='{{$song->id}}'
data-songname='{{$songname}}'>
{{$songname}}
</div>
@endforeach
</div>
@endsection
作为一般规则,您希望模型中的逻辑、瘦控制器以及视图中的所有 HTML。不过在本例中,逻辑非常简单,您只需在视图中即时设置一个变量即可。