Size: a a a

Laravel для начинающих

2020 January 23

MR

Maxim Rebitskiy in Laravel для начинающих
Andrey Helldar
Безлимитно хоть публичных, хоть приватных.
Ограничения бесплатных - максимум 3 соработника на приватную репу.

По линке выше более подробная инфа.
А приватные на гитхабе уже можно делать бесплатно?
источник

VP

Vasiliy Pivovarov in Laravel для начинающих
у меня у репозиториев интерфейсы называются контрактами
источник

AH

Andrey Helldar in Laravel для начинающих
Maxim Rebitskiy
А приватные на гитхабе уже можно делать бесплатно?
С тех самых пор как Microsoft выкупила Github)
источник

VP

Vasiliy Pivovarov in Laravel для начинающих
Maxim Rebitskiy
А приватные на гитхабе уже можно делать бесплатно?
да
источник

MR

Maxim Rebitskiy in Laravel для начинающих
Andrey Helldar
С тех самых пор как Microsoft выкупила Github)
Хмм, бо я сижу уже как 3 года на студ. подписке
источник

OK

Oleg Komenda 👨‍💻 in Laravel для начинающих
Maxim Rebitskiy
А приватные на гитхабе уже можно делать бесплатно?
Уже давно
источник

MR

Maxim Rebitskiy in Laravel для начинающих
и у меня и так бесплатные безлимит типа
источник

AH

Andrey Helldar in Laravel для начинающих
Microsoft в 2018-м году выкупила Github и сразу сделала приватные репы бесплатными.
источник

MR

Maxim Rebitskiy in Laravel для начинающих
А, понял
источник

MR

Maxim Rebitskiy in Laravel для начинающих
Тогда провтыкал я этот момент
источник

VY

Vladimir Yefremov in Laravel для начинающих
Нужно было сделать быстро
слепил такую штуку:
    public function showAll(Request $request)
   {
       $query = Logging::whereNotNull('created_at');
       if ($request->filled('id')) {
           $query->where('id', $request->id);
       }
       if ($request->filled('user_id')) {
           $query->where('user_id', $request->user_id);
       }
       if ($request->filled('partner_name')) {
           $query->where('partner_name', 'like', '%' . $request->partner_name . '%');
       }
       if ($request->filled('event_type')) {
           $query->where('event_type', $request->event_type);
       }
       if ($request->filled('page_url')) {
           $query->where('page_url', 'like', '%' . $request->page_url . '%');
       }
       if ($request->filled('description')) {
           $query->where('description', 'like', '%' . $request->description . '%');
       }
       if ($request->filled('date_created')) {
           $query->whereDate('created_at',  $request->date_created);
       }
       $loggingRows = $query->orderBy('id', 'DESC')->with('user')->paginate(100);

       return view('backend.logging_stat.index', [
           'loggingRows' => $loggingRows->appends($request->except(['page']))
       ]);
   }


теперь есть время - можно переделать нормально....
чем заменить эти все ифы?
источник

ML

Mehrob Latipov in Laravel для начинающих
Vladimir Yefremov
Нужно было сделать быстро
слепил такую штуку:
    public function showAll(Request $request)
   {
       $query = Logging::whereNotNull('created_at');
       if ($request->filled('id')) {
           $query->where('id', $request->id);
       }
       if ($request->filled('user_id')) {
           $query->where('user_id', $request->user_id);
       }
       if ($request->filled('partner_name')) {
           $query->where('partner_name', 'like', '%' . $request->partner_name . '%');
       }
       if ($request->filled('event_type')) {
           $query->where('event_type', $request->event_type);
       }
       if ($request->filled('page_url')) {
           $query->where('page_url', 'like', '%' . $request->page_url . '%');
       }
       if ($request->filled('description')) {
           $query->where('description', 'like', '%' . $request->description . '%');
       }
       if ($request->filled('date_created')) {
           $query->whereDate('created_at',  $request->date_created);
       }
       $loggingRows = $query->orderBy('id', 'DESC')->with('user')->paginate(100);

       return view('backend.logging_stat.index', [
           'loggingRows' => $loggingRows->appends($request->except(['page']))
       ]);
   }


теперь есть время - можно переделать нормально....
чем заменить эти все ифы?
источник

AH

Andrey Helldar in Laravel для начинающих
Vladimir Yefremov
Нужно было сделать быстро
слепил такую штуку:
    public function showAll(Request $request)
   {
       $query = Logging::whereNotNull('created_at');
       if ($request->filled('id')) {
           $query->where('id', $request->id);
       }
       if ($request->filled('user_id')) {
           $query->where('user_id', $request->user_id);
       }
       if ($request->filled('partner_name')) {
           $query->where('partner_name', 'like', '%' . $request->partner_name . '%');
       }
       if ($request->filled('event_type')) {
           $query->where('event_type', $request->event_type);
       }
       if ($request->filled('page_url')) {
           $query->where('page_url', 'like', '%' . $request->page_url . '%');
       }
       if ($request->filled('description')) {
           $query->where('description', 'like', '%' . $request->description . '%');
       }
       if ($request->filled('date_created')) {
           $query->whereDate('created_at',  $request->date_created);
       }
       $loggingRows = $query->orderBy('id', 'DESC')->with('user')->paginate(100);

       return view('backend.logging_stat.index', [
           'loggingRows' => $loggingRows->appends($request->except(['page']))
       ]);
   }


теперь есть время - можно переделать нормально....
чем заменить эти все ифы?
$loggingRows = Logging::whereNotNull('created_at')
 ->with('user')
 ->when($request->filled('id', function ($query) use ($request) {
   $query->where('$id', $request->get('id'))
 })
 // ...
 ->latest()
 ->paginate(100);

return view('your_view')
 ->with(compact('loggingRows'));
источник

AH

Andrey Helldar in Laravel для начинающих
Скоупы не совсем подойдут если нужно проверять заполненность поля в реквесте, а передавать его туда ну такое себе.

НО если такая логика запросов будет использоваться минимум в двух разных классах, то да, лучше всё вынести в скоупы:
// model
public function scopeSetId($query, $id = null) {
 return $query->when($id, function ($query) use ($id) {
   $query->where('id', $id);
 });
}

// controller / service
$loggingRows = Logging::whereNotNull('created_at')
   ->setId($request->get('id'))
источник

ML

Mehrob Latipov in Laravel для начинающих
А тут ведь скоупов нет, лишь один
источник

ML

Mehrob Latipov in Laravel для начинающих
Он просто вызывает функцию по названию параметра передавая билдер поочередно в каждую из них
источник

ML

Mehrob Latipov in Laravel для начинающих
Удобно и без ифоф
источник

AH

Andrey Helldar in Laravel для начинающих
Mehrob Latipov
Он просто вызывает функцию по названию параметра передавая билдер поочередно в каждую из них
Ты сейчас скоуп описал))
источник

AH

Andrey Helldar in Laravel для начинающих
По той линке пример даже с ним есть)
источник

ML

Mehrob Latipov in Laravel для начинающих
А ну если так смотреть, то да)
источник