Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Добрый день!
telegram: @vkn_n
Добрый день. Нужно взглянуть на проект.
Добрый день. ТЗ дописали?)
Добрый день.
Ориентир: от 200 т. р.
Точные сроки и стоимость при наличии детального ТЗ.
Рассмотрю Ваши предложения.
Разработка нового проекта, доработка существующего, поддержка.
В работе использую технологии:
Laravel/Nuxt/Vue/TailwindCSS/MySQL/PostgreSQL/Linux
Возможна работа по договору.
telegram: @vkn_n
up
part-time
Стек Laravel, Vue.
telegram: @vkn_n
Up. Доступно примерно 20 часов в неделю.
Необходимо использовать контроллер, который возвращает нужные данные во вьюху.
Up. Доступно примерно 20 часов в неделю.
На данный момент доступно 6-8 часов в день. @vkn_n
Для того, чтобы проще решать подобны задачи попробуй составить запрос на SQL, который вернёт нужный тебе результат, а затем попробуй переписать его при помощи Eloquent. Если не получится - всегда можешь использовать DB::raw(), но так у тебя будет возможность конкретизировать свои вопросы и уточнить, что конкретно не получается.
Нет. Зачем? Пишу руками.
Для чего создавать целых 3 темы?:D
Up. Есть свободное время part time. Пишите в telegram @vkn_n
Laravel (backend)
Nuxt (frontend) - Server Side Rendering (для SEO)
Взаимодействие через API.
Неверный ход мыслей.
Вот неплохая статья по организации шаблонов.
Я вижу это через вывод case, но у меня уже таких 10 кейсов а еще не все страницы созданы..пример кода..<?php switch ($pagename): ?><?php case "about": include '_menu_about.tpl'; break; ?><?php case "payservice": include '_menu_about.tpl'; break; ?><?php case "careerguidance": include '_menu_about.tpl'; break; ?> <?php case "education": include '_menu_education.tpl'; break; ?><?php case "gpd": include '_menu_primaryschool.tpl'; break; ?>
Точно не так и для меню можно взять готовый пакет, например spatie/laravel-menu.
А что, у каждой из этих страниц будет какой-то свой хедер, футер, отличающиеся от базового шаблона?
Почему нельзя выводить динамический контент из базы и причём здесь 100 страниц? Можно выводить и десятки тысяч страниц правильно используя Laravel. О чём сайт? Блог? Какие модели будешь использовать? Отношения?
На мой взгляд тебе для начала необходимо научиться работать с шаблонизатором blade. Изучи оф. документацию + посмотри видео на Ютубе.
После этого создай правильную структуру и попробуй научиться выводить свой title, description и т.п. для каждой страницы.
Upd.На данный момент действует антикризисная цена за час - 800 руб.
дело не в контроллере, а в том, что не даёт повесить 3 маршрута на один контроллер.
Тебе нужно только 2 маршрута в контроллере GET и POST. Но может быть 3й маршрут с параметрами, например
DELETE /photos/{photo}
и т.п., см пример в документации.
class TournamentController extends AdmController
Также ты своим контроллером расширяешь AdmController - необходимо это также учитывать.
Здесь у тебя скоуп? Убедись, что он возвращает то, что ты хочешь.
$product = Products::getRandomProduct();
Та же самая ошибка: InvalidArgumentExceptionAction App\Http\Controllers\AppController@getRandomProduct not defined.
А теперь подумай, откуда Laravel возьмёт url ?
У тебя нигде не задан url, на который ты должен сделать редирект и вывести рандомный продукт на странице.
Ну и параметры ты должен передать согласно документации:
return redirect()->action(
[UserController::class, 'profile'], ['id' => 1]
);
Слушай, ведь есть хороший пример в документации
то есть, он хочет по одному на каждый get и post?
Не понимаю тебя.
Простой пример:
public function index() // выводим список постов в блоге (допустим в админке)
{
$blogs = Post::orderBy(‘id’, ‘DESC’)->paginate(10);
return return view('blogs.index', compact('blogs'));
}
public function edit($id) //по клику на кнопке 'редактировать' со страницы 'index' переходим во view'post.edit'
{
$post = Post::find($id);
return return view('post.edit', compact('blogs'));
}
Соответственно для edit - метод GET. На этой странице можем выполнить редактирование и по клику на кнопке сохранить - задействуем метод контроллера 'update' который отвечает за сохранение обновленной записи. Конечно необходима валидация, а логику выносим в сервис-классы.
->name("admin_tournaments_save")
Нэйминг через точку!
После изменений чистим кэш и делаем composer du
На всякий случай укажи версию Laravel и php.
А теперь распиши по шагам, что по-твоему делает данный код:
public function getRandomProduct()
{
$product = Products::getRandomProduct();
if ($product) {
return view('product', $product);
} else {
abort('404');
}
}
Предлагаю переписать данный код.
В контроллере можно создать метод index (или show) см. пример из документации
Далее создаем метод edit - в нём осуществляем редактирование записи.(GET)
Метод update - будет отвечать за обновление записи (POST)
Необходимо вынести валидацию из контроллера в Request классы пример
<form method="post" action="{{ route("admin_tournaments_index_edit") }}">
Лучше переписать на вот это (не забываем про @csrf) :
<form method="post" action="{{ route("admin.tournaments.store") }}">
- сохранение после добавления новой записи.
Давай разберём твои маршруты и контроллеры и приведём всё это в надлежащий вид.
Покажи код вот этого контроллера:
Route::post('/adm/tournaments', 'Adm\TournamentController@index_edit')->middleware(["admin"])->name("admin_tournaments_index_edit");
Для того, чтобы понять истоки проблемы необходимо как минимум знать версию ОС, версию Хрома и какие плагины подключены в нём, а также видеть код, который ты запускаешь по данному адресу.
Попробуй отключить все плагины хрома, если они есть.