Laravel по-русски

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

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

#1 Laravel 5.x » Отправляются не корректные данные через json » 11.02.2017 10:13:12

alexs
Ответов: 0

Если я с помощью dd($event->get()) получаю данные, то выводятся корректные данные

 $language = app()->getLocale();
        $event = Event::join('event_translations', 'events.id', '=', 'event_translations.event_id')
            ->where('event_translations.locale', '=', $language);

        dd($event->get());

А если с помощью json, то нет

        return response()
            ->json([
                'model' => $event->get(),
            ]);

Например,
dd($event->get())

#attributes: array:8 [
"id" => 27
"picture" => "cutlery.png"
"created_at" => "2017-01-19 14:24:18"
"updated_at" => "2017-01-19 14:24:18"
"event_id" => 3
"locale" => "pl"
"name" => "RESTAURACJI"
"description" => "RESTAURACJI\r\n"]

json

created_at:"2017-01-19 14:24:18"
description:"BARMANI NA ZLECZENIE"
event_id:3
id:27
locale:"pl"
name:"BARMANI NA ZLECZENIE"
picture:"cutlery.png"
updated_at:"2017-01-19 14:24:18"

Для локализации использую пакет dimsav/laravel-translatable
Laravel 5.3

#3 Re: Laravel 5.x » Полиморфные отношения » 13.01.2017 11:43:41

Да, я это не заметил в Документации.
Владельца полиморфного отношения я могу получить

$comment = App\Comment::find(1);

$commentable = $comment->commentable;

Но не работает получение всех комментариев. Он вообще почему-то составляет неправильный запрос

$post = App\Post::find(1);

foreach ($post->comments as $comment) {
    //
}

В итоге возникает ошибка

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'posts.commentable_id' in 'where clause' (SQL: select * from `posts` where `posts`.`commentable_id` = 1 and `posts`.`commentable_id` is not null and `posts`.`commentable_type` = post)

#4 Laravel 5.x » Полиморфные отношения » 13.01.2017 10:52:00

alexs
Ответов: 4

Создал БД

posts

id - integer
title - string
body - text
videos

id - integer
title - string
url - string
comments

id - integer
body - text
commentable_id - integer
commentable_type - string

Для каждой Модели определил отношения

class Comment extends Model
{
    /**
     * Get all of the owning commentable models.
     */
    public function commentable()
    {
        return $this->morphTo();
    }
}

class Post extends Model
{
    /**
     * Get all of the post's comments.
     */
    public function comments()
    {
        return $this->morphMany('App\Comment', 'commentable');
    }
}

class Video extends Model
{
    /**
     * Get all of the video's comments.
     */
    public function comments()
    {
        return $this->morphMany('App\Comment', 'commentable');
    }
}

В контроллере написано

  public function index()
    {
        $comment = App\Comment::find(1);

        $commentable = $comment->commentable;
        dd( $commentable);
    }

Но мне выдает ошибку

FatalErrorException in Model.php line 827: Class 'post' not found

В базе пробовал менять название commentable_type на Post все равно ошибка.введите сюда описание изображения
raGZT.png
Что мне сделать чтобы отношения работали?

#5 Re: Laravel 5.x » Локализацию с Vue » 12.01.2017 18:55:40

hzone пишет:
constb пишет:

не могу сказать как вообще vue-исты решают этот вопрос

точно так же как Тейлор решает вопрос с локализацией - папкой lang.

Ну, а если не использовать blade? В Blade шаблоне находится только один div, к которому подключается Vue-компоненты. Или выход перенести все в Blade?

#6 Laravel 5.x » Локализацию с Vue » 10.01.2017 08:41:10

alexs
Ответов: 7

Как мне в шаблоне <template> можно будет подставлять текст разных языков?

#7 Laravel 5.x » Локализация БД в laravel » 05.01.2017 14:22:22

alexs
Ответов: 3

Как можно правильно локализовать базу в laravel, если будет несколько языков и возможно, что в дальнейшем еще будет добавляться языки?

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