Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Неверный ход мыслей.
Вот неплохая статья по организации шаблонов.
Я вижу это через вывод 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");
Для того, чтобы понять истоки проблемы необходимо как минимум знать версию ОС, версию Хрома и какие плагины подключены в нём, а также видеть код, который ты запускаешь по данному адресу.
Попробуй отключить все плагины хрома, если они есть.
Если нужно задать особый порядок вывода, то можно, например добавить переменную order, в которой хранить порядок вывода данного пункта.
Возьми простой конструктор, вроде WordPress и не мучайся.
Относительные ссылки, их наименования сохраняются в БД, а выводить их можно в цикле в представлении при помощи foreach
А в чём собственно проблема?
Есть свободное время
У меня на Ubuntu с Laravel 8 нет проблем с автозагрузкой и видимостью новых классов. Разверни с нуля новый проект, не знаю, на VDS и протестируй.
Для сервис-классов рекомендую использовать название папок Services или UseCases.
Есть положительный результат ?
Ты уверен, что правильно меня понял про обновление версии самого композера, а не 'composer update' ?
Обнови композер до версии 2. (последняя 2.2.5)
composer du после создания нового класса сделал?
Какая версия composer/Laravel/php ?
Что-то тут не так. Перепроверь пути и название класса на предмет ошибок (например кирилица).
После composer du всё должно было заработать.
Это необходимо победить! Как же ты будешь писать свои сервис-классы?
Все делаю у себя на локалхосте (ubuntu под win10).
В этом также может быть причина. Хочешь писать качественный код - просто бери linux и пиши.
Lorem ipsum - это должно быть в базе и вывод при помощи переменных.
У меня есть страница, допустимLorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum
$image$
Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum $link$Таких несколько.
Далее:(boostrap аккордеон)
$link$
$link$
$link$И все возможные варианты страниц.
Посмотри проект на который я скидывал ссылку выше. Подумай. Скинь пример реального своего кода.
Контент -> в БД. Выводишь при помощи переменных во view.
Что значит разнятся технологиями визуализации? У тебя же везде сетка bootstrap?
Вот тебе пример простого проекта.
Посмотри как выводятся данные в шаблон и иерархию.
Как я могу ответить конкретикой на абстрактный вопрос?)
Приведи конкретный пример и код.
Я думаю, что тебе стоит как следует изучить возможности шаблонизатора
blade в Laravel.