Рубрики
Uncategorized

Laravel 9 нечастых советов

Автор оригинала: David Wong.

1. Обновление меток времени родительской таблицы

Если вы хотите обновить родительскую таблицу при обновлении связанной таблицы метки времени Вам просто нужно связать таблицу модель Добавьте атрибут прикосновения . Например, у нас есть Сообщение и Комментарий Два Модели Релевантности

php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Comment extends Model
{
    /**
     * All associated tables to be updated
     *
     * @var array
     */
    protected $touches = ['post'];

    /**
     * Get the post that the comment belongs to.
     */
    public function post()
    {
        return $this->belongsTo('App\Post');
    }
}

2. Медленная загрузка указанных полей

$posts = App\Post::with('comment:id,name')->get();

3. Контроллер, назначенный для перехода, с параметрами

return redirect()->action('[email protected]', ['param' => $value]);

4. Использовать в сочетании с Default()

При вызове ассоциации, если другой модели не существует, система выдает фатальную ошибку, такую как $комментарий->сообщение->заголовок Поэтому нам нужно использовать по умолчанию()

...
public function post()
{
    return $this->belongsTo(App\Post::class)->withDefault();
}

5. Использование в двухуровневых циклах$loop

останься лезвие Из каждого Если вы хотите получить переменные внешнего цикла

@foreach ($users as $user)     
 @foreach ($user->posts as $post)         
    @if ($loop->parent->first)             
       This is first iteration of the parent loop.         
   @endif     
 @endforeach 
@endforeach

6. Просматривайте почту, не отправляя ее

Если вы используете для отправки по почте Чтобы отправить электронное письмо, вы можете показать его, не отправляя.

Route::get('/mailable', function () {
    $invoice = App\Invoice::find(1);
    return new App\Mail\InvoicePaid($invoice);
});

7. Соответствующие Записи Запросов

останься хасМани В ассоциативных связях можно запрашивать записи, число ассоциативных записей которых должно быть больше 5.

$posts = Post::has('comment', '>', 5)->get();

8. мягкое удаление

Просмотр записей, содержащих мягкие удаления

$posts = Post::withTrashed()->get();

Просмотр записей, которые являются только мягко удалено

$posts = Post::onlyTrashed()->get();

Восстановление Моделей Мягкого Удаления

Post::withTrashed()->restore();

9. Красноречивый метод времени

$posts = Post::whereDate('created_at', '2018-01-31')->get(); 
$posts = Post::whereMonth('created_at', '12')->get(); 
$posts = Post::whereDay('created_at', '31')->get(); 
$posts = Post::whereYear('created_at', date('Y'))->get(); 
$posts = Post::whereTime('created_at', '=', '14:13:58')->get();

Оригинал: “https://developpaper.com/laravel-9-infrequent-tips/”