Laravel 블레이드 템플릿에서 문자열 잘라내기
Larabel에는 Smarty와 같은 블레이드 템플릿의 잘라내기 수식어가 있습니까?
템플릿에 실제 php를 쓸 수 있다는 것은 알지만, 저는 좀 더 쓰기 좋은 것을 찾고 있습니다(PHP 전체를 다루지 맙시다.템플릿 엔진 토론입니다.
예를 들어 다음과 같은 것을 찾고 있습니다.
{{ $myVariable|truncate:"10":"..." }}
작곡가를 통해 Twig와 같은 것을 사용할 수 있다는 것은 알지만, Larabel 자체에 내장된 기능을 원합니다.
그렇지 않은 경우 Smarty가 제공하는 재사용 가능한 수식어를 직접 만들 수 있습니다.Blade가 모든 구문에서 과도한 효과를 거두지 않는다는 사실은 마음에 들지만 잘라내는 것은 정말 편리한 기능이라고 생각합니다.
라라벨 4를 쓰고 있어요.
Larabel 4 & 5 (최대 5.7)에서는str_limit
문자열의 문자 수를 제한합니다.
Larabel 5.8 up 의 경우는,Str::limit
헬퍼
//For Laravel 4 to Laravel 5.5
{{ str_limit($string, $limit = 150, $end = '...') }}
//For Laravel 5.5 upwards
{{ \Illuminate\Support\Str::limit($string, 150, $end='...') }}
Larabel 도우미 기능에 대한 자세한 내용은 http://laravel.com/docs/helpers#strings를 참조하십시오.
라라벨 4는Str::limit
정확한 글자 수로 잘려나가게다가Str::words
단어 경계에서 잘라냅니다.
체크 아웃:
편집: 이 답변은 Str 클래스가 존재하지 않는 Larabel 4 베타 버전 중에 게시되었습니다.Laravel 4에서 그것을 할 수 있는 더 좋은 방법이 있다. - 아래 더스틴의 답변이다.SO 규칙 때문에 이 답변을 삭제할 수 없습니다(해당되지 않음).
블레이드 자체에는 이러한 기능이 없습니다.
Laravel 3에는 Str 클래스가 있습니다.이러한 클래스는 다음과 같습니다.
{{ Str::limit($myVariable, 10) }}
현시점에서는 Str 클래스가 Larabel 4에 있다고는 생각하지 않습니다만, 여기, 자신의 프로젝트에 추가할 수 있는 포토가 있습니다.
Larabel 7.* 업데이트: Fluent Strings. 즉, 문자열 값을 사용하기 위한 보다 유연하고 객체 지향적인 인터페이스를 통해 기존의 문자열 조작에 비해 읽기 쉬운 구문을 사용하여 여러 문자열 조작을 연결할 수 있습니다.
제한 예:
$truncated = Str::of('The quick brown fox jumps over the lazy dog')->limit(20);
산출량
The quick brown fox...
단어 예:
$string = Str::of('Perfectly balanced, as all things should be.')->words(3, ' >>>');
산출량
Perfectly balanced, as >>>
Laravel 6.* 업데이트 : 모든 Laravel 도우미를 사용하려면 이 패키지가 필요합니다.
composer require laravel/helpers
컨트롤러에서 도우미를 사용하는 경우 클래스를 포함/사용하는 것을 잊지 마십시오.
use Illuminate\Support\Str;
Larabel 5.8 업데이트
이것은 문자열의 문자를 처리하기 위한 것입니다.
{!! Str::limit('Lorem ipsum dolor', 10, ' ...') !!}
산출량
Lorem ipsu ...
이것은 문자열의 단어를 처리하기 위한 것입니다.
{!! Str::words('Lorem ipsum dolor', 2, ' ...') !!}
산출량
Lorem ipsum ...
다음은 문자열 Laravel Helpers를 처리하기 위한 최신 도우미 문서입니다.
코드를 건조하게 유지하려면, 그리고 컨텐츠가 모델에서 나온 경우 약간 다른 접근 방식을 채택해야 합니다.다음과 같이 모델을 편집합니다(L5.8에서 테스트됨).
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Str;
class Comment extends Model
{
public function getShortDescriptionAttribute()
{
return Str::words($this->description, 10, '...');
}
}
?>
다음으로 뷰에서 다음을 수행합니다.
{{ $comment->short_description }}
다음과 같이 네임스페이스를 설정할 수 있습니다.
{!! \Illuminate\Support\Str::words($item->description, 10,'....') !!}
다음과 같은 간단한 일에는 도우미를 만들고 싶습니다. 예를 들어 다음과 같습니다.
helpers.php
/app/helpers.php
하다
<?php
if (! function_exists('short_string')) {
function short_string($str) {
$rest = substr($str, 0, 10);
return $rest;
}
}
helper.php
in の oloolo の oloolo로 자동 로드 시composer.json
"autoload": {
"files": [
"app/helpers.php"
],
"psr-4": {
"App\\": "app/"
},
"classmap": [
"database/seeds",
"database/factories"
]
}
그런 다음 블레이드 파일에서 다음과 같이 사용할 수 있습니다.
{{ short_string($whatever_as_text) }}
이 간단한 기능을 앱에서 글로벌하게 사용할 수 있습니다.
이것은 Larabel 5에서 동작합니다.
{!!strlen($post->content) > 200 ? substr($post->content,0,200) : $post->content!!}
문자열 제한은 다음과 같이 설정할 수 있습니다.
<td>{{str_limit($biodata ->description, $limit = 20, $end = '...')}}</td>
공백 포함 20글자만 표시되며 끝은 ...로 끝납니다.
Larabel 4 & 5(최대 5.7)에서는 str_limit을 사용할 수 있습니다.이것에 의해, 문자열내의 문자수가 제한됩니다.
Larabel 7 up 상태에서는 Str::limit 도우미를 사용할 수 있습니다.
//For Laravel to Laravel 7
{{ Illuminate\Support\Str::limit($post->title, 20, $end='...') }}
sub_str을 사용할 수 있습니다.
{{substr($myVariable,10)}}
Str::words 메서드는 문자열 내의 단어 수를 제한합니다.잘라낸 문자열의 끝에 추가할 문자열을 지정하기 위해 다음 세 번째 인수를 통해 이 메서드에 추가 문자열을 전달할 수 있습니다.
use Illuminate\Support\Str;
return Str::words('Perfectly balanced, as all things should be.', 3, ' >>>');
// Perfectly balanced, as >>>
메서드에 세 번째 인수를 전달하면 잘린 문자열 끝에 추가되는 문자열을 변경할 수 있습니다.
use Illuminate\Support\Str;
$truncated = Str::limit('The quick brown fox jumps over the lazy dog', 20, ' (...)');
// The quick brown fox (...)
Larabel 6 업데이트:
@php
$value = 'Artificial Intelligence';
$var = Str::limit($value, $limit = 15, $end = '');
print_r($var);
@endphp
<p class="card-text">{{ Illuminate\Support\Str::limit($value, 7) }}</p>
<h2 class="main-head">{!! Str::limit($value, 5) !!}</h2>
다음 예제에서는 8개의 라라벨을 사용합니다.
{!! Str::words("$post->content", 8, ' ...') !!}
{!! Str::limit("$post->content", 15, ' ...') !!}
Laravel Blade 디렉티브는 다음과 같이 사용할 수 있습니다.
Str::limit('$yourString',numberOfElement).
예를 들어 Str::limit('Test', 3)는 Tes를 표시합니다.
언급URL : https://stackoverflow.com/questions/15012712/truncate-string-in-laravel-blade-templates
'itsource' 카테고리의 다른 글
Number 객체가 속성을 보유하여 숫자를 증가시키면 이 코드에서 어떤 일이 발생합니까? (0) | 2022.11.15 |
---|---|
사용자 이름 없이 Mariadb 연결이 중단되었습니다. (0) | 2022.11.15 |
WhatsApp API(java/python) (0) | 2022.11.15 |
핸들러에서 모든 콜백을 삭제하려면 어떻게 해야 합니까? (0) | 2022.11.15 |
PHP 세션이 이미 시작되었는지 확인합니다. (0) | 2022.11.15 |