Магия модели Laravel

217
07 августа 2018, 13:40

Есть модель Post

<?php
namespace App;
use Carbon\Carbon;
use Illuminate\Support\Facades\Storage;
use Illuminate\Database\Eloquent\Model;
use Cviebrock\EloquentSluggable\Sluggable;
use Illuminate\Support\Facades\Auth;
class Post extends Model
{
    use Sluggable;
    const IS_DRAFT = 0;
    const IS_PUBLIC = 1;
    protected $fillable = ['title','content', 'date', 'description'];

    public function comments()
    {
        return $this->hasMany(Comment::class);
    }

    public function getComments()
    {
        return $this->comments()->where('status', 1)->get();
    }
}

В контроллере, ни к какой метод не вызывается, а только идёт обращение ко всей модели, нужной статье

public function show($slug)
    {
        $post = Post::where('slug', $slug)->firstOrFail();
        return view('pages.show', compact('post'));
    }

И в виде, вызывается метод $post->getComments, как этот метод попал в вид, если в контроллере, его не передавали? или когда идёт любое обращение к классу, таким способом Post:: то в переменную вшиваются все методы?

Answer 1

Ты в контроллере получил экземпляр модели Post и передаешь этот экземпляр в вод. И нет разницы, где ты используешь этот экземпляр со всеми его методами - в контроллере, виде, консольной команде, задаче, обработчике события и т.д.
Ну и еще момент. Раз уж это метод класса, то и вызавать его надо как метод: $post->getComments()

READ ALSO
Передача указателя на метод класса в конструктор вложенного класса

Передача указателя на метод класса в конструктор вложенного класса

У меня есть класс, внутри которого объявлен объект другого класса (композиция)Первый содержит метод, указатель на который нужно передать...

233
Windows form построение графиков

Windows form построение графиков

Здравствуйте хотел бы узнать как реализовать построение синусоиды в плоскости XYZ в windows form на C++ ?

295
Расстановка знаков между числами

Расстановка знаков между числами

Даны N чиселНужно расставить + и * между ними и получить максимум

240
Как переопределить сигнал в qt?

Как переопределить сигнал в qt?

У меня вопрос как переопределить сигнал в Qt?

268