$path = 'storage/news/cover/';
$imageName = 'cover_' . md5($path . time());
$this->validate($request, [
'title_news' => 'required',
'short_news' => 'required',
'full_news' => 'required',
'cover_news' => 'required|mimes:jpeg,jpg,png',
]);
$addNews = News::create([
'author_news' => Auth::user()->id_users,
'title_news' => $request->title_news,
'short_news' => $request->short_news,
'full_news' => $request->full_news,
'cover_news' => $request->cover_news,
]);
if($addNews){
if($request->hasFile('cover_news')){
// Если мы загружаем обложку
$storagePath = Storage::allDirectories($path);
if(!$storagePath){
// Если нету папки, то создаём её
// File::makeDirectory($path, 0755, true, true);
Storage::makeDirectory($path);
}
// Название изображения ('cover_' . md5($path . time()).jpg)
$imageCover = $imageName . '.' . $request->cover_news->extension();
// Загружаем картинку в папку
$uploadCover = Image::make($request->cover_news)->save($path . $imageCover);
}
return redirect()->route('news.getNews', $addNews->id_news)->with('successMessages', 'Вы успешно добавили новость!');
}
/* Получаем все зависимости */
public static function withUser(string $login){
$user = User::where('login_users', $login)->first(); // Получаем данные о пользователе
$user->load(['getUserPosts.author']);
return $user; // Отдаём эти данные
}
/* Получаем все посты со страницы пользователя */
public function getUserPosts(){
return $this->hasMany(Posts::class, 'user_posts', 'id_users');
}
/* Получаем авторов поста */
public function author(){
return $this->belongsTo(User::class, 'author_posts', 'id_users');
}
$withUser = User::withUser($login);
public static function getCollectionGames(string $gameName){
$game = Games::getGame($gameName); // Получаем данные об игре
// "Делаем ленивую нетерпеливую загрузку"
if($game){
$game->load(['getNewsGame' => function($news){
// Добавляем сортировку и даём скрипту вывести на страницу только 10 новостей.
$news->orderBy('id_news', 'desc')->paginate(10);
}]);
}
return $game; // Отдаём эти данные
}
{{ $games->getNewsGame()->paginate(10)->links() }}
public function main(Request $request) {
$mains = Main::all();
$sidebar = Sidebar::all();
return view('index_hub', ['mains' => $mains, 'sidebar' => $sidebar]);
}
<sidebar>
// тут мб таблица, или просто вывод какой-то определённой инфы.
// тогда просто делаем запрос к модели и выводим
// пример для div таблицы
@foreach(Sidevar::all() as $sidevar)
<div>{{ $sidebar->name }}</div>
@endforeach
</sidebar>
/* Получение комментариев и их авторов */
public static function getCommentsIDNews($newsID){
$getCommentsIDNews = Comments::where([
['news_comments', '=', $newsID],
['status_comments', '=', 1]
])
->join('users', 'author_comments', '=', 'id_users')
->get();
return $getCommentsIDNews;
}