Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 05.01.2015 07:50:30

Помогите новичку. Нужно обрезать комментарий да 10 знаков.

Здравствуйте!
Я новичок и не могу понять как мне вывести комментарии, но только 10 знаков (букв). Из базы данных у меня они выводятся вот так:
<span class="colortext2"><?= $o->comment; ?></span>
но показываются все предложения и порой бывает целый текст, а требуется показать только 10 букв и троеточие. (далее пользователь переходит по комментарию и читает все- это реализовано.) Помогите пожалуйста обрезать до 10 букв.

Не в сети

#2 05.01.2015 09:01:02

BaldaI
Откуда: Хабаровск
Сообщений: 16

Re: Помогите новичку. Нужно обрезать комментарий да 10 знаков.

Создайте в модели метод:

public function getShortCommentAttribute()
{
    return mb_substr($this->comment, 0, 10);
}

И выводите в view так:

<span class="colortext2"><?= $o->short_comment ?>...</span>

Не в сети

#3 05.01.2015 09:30:58

Re: Помогите новичку. Нужно обрезать комментарий да 10 знаков.

Если я правильно понял, то:
public function getShortCommentAttribute()
{
    return mb_substr($this->comment, 0, 10);
}
это в контроллер?
Но тогда при переходе на комметарий он тоже отображается только на 10 знаков.

Не в сети

#4 05.01.2015 09:43:30

BaldaI
Откуда: Хабаровск
Сообщений: 16

Re: Помогите новичку. Нужно обрезать комментарий да 10 знаков.

Нет. Этот accessor для получения укороченного текста комментария, находится в модели содержащей комментарий.

Не в сети

#5 05.01.2015 10:13:56

Re: Помогите новичку. Нужно обрезать комментарий да 10 знаков.

Да я уже поняла что не права. Вот только у меня тут такой кавардак, уже минут 15 ищу. Вы не могли бы пожалуйста хотя бы путь или примерный путь к accessor? Пожалуйста.

Не в сети

#6 05.01.2015 10:38:28

Re: Помогите новичку. Нужно обрезать комментарий да 10 знаков.

Ура! Нашла, нашла, нашла. Спасибо! Спасибо! Спасибо!

Не в сети

#7 05.01.2015 11:16:47

Re: Помогите новичку. Нужно обрезать комментарий да 10 знаков.

BaldaI. Подскажите а как тогда :
<?= $o->area->name; ?>
вывести только три знака (буквы).
В view  я поняла что прописать нужно <?= $o->area->short_name; ?>
а вот какой метод прописать в модели?
Помогите пожалуйста, будьте добры, всего неделю только разбираюсь.

Не в сети

#8 05.01.2015 11:32:05

BaldaI
Откуда: Хабаровск
Сообщений: 16

Re: Помогите новичку. Нужно обрезать комментарий да 10 знаков.

В модели, экземпляр которой находится в $o->area, добавить accessor:

public function getShortNameAttribute()
{
    return str_limit($this->name, 3);
}

Если требуется часто укорачивать различные свойства модели, можно не создавать множество accessor-методов, а просто в view обрезать строку до нужной длины:

 <?= str_limit($o->area->name, 3) ?>

И еще, в этом случае, лучше использовать str_limit() вместо mb_substr().

Изменено BaldaI (05.01.2015 11:34:58)

Не в сети

#9 05.01.2015 11:44:32

Re: Помогите новичку. Нужно обрезать комментарий да 10 знаков.

Спасибо большое! Очень вам благодарна.

Не в сети

Подвал раздела