Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Я, сразу говорю, новичок. Может я уже загнался, может капец как сильно туплю, но ситуация становится патовой, так что help me) Laravel 5.4
Короче, вот роуты (web.php)
Route::name('admin::')->prefix('admin')->group(function(){
//Авторизация
Route::name('auth::')->prefix('auth')->group(function(){
Route::name('view')->get('view', 'Admin\DashboardController@auth');
Route::name('act')->post('act', 'Admin\DashboardController@auth');
Route::name('logout')->get('logout', 'Admin\DashboardController@logout');
});
Route::name('home')->get('home', 'Admin\DashboardController@home');
Route::name('content::')->prefix('content')->group(function(){
Route::name('page::')->prefix('page')->group(function(){
Route::name('list')->get('list', 'Admin\DashboardController@list');
Route::name('about')->get('about', 'Admin\DashboardController@about');
Метод в контроллере (DashboardController@about)
public function about()
{
return view('upgr.static.about', [
'dashboards' => Dashboard::orderBy('id')->paginate(16),
'dashboard' => [],
'delimiter' => ''
]);
}
Сам файл about
@section('content')
<main>
<div class="container">
<ol class="breadcrumbs">
<li class="breadcrumbs-item"><a href="/">Главная</a></li>
@forelse($dashboards as $dashboard)
<li class="breadcrumbs-item">{{ $dashboard->name }}</li>
</ol>
</div>
<div class="container">
<h1>{{ $dashboard->title }}</h1>
<p>{!! $dashboard->description !!}</p>
<img src="{{ $dashboard->image }}" alt="{{ $dashboard->name}}" class="img-responsive">
@empty
<h2>Скоро здесь появиться информация, пожалуйста подождите.</h2>
@endforelse
</div>
</main>
@endsection
При таком раскладе у меня на сайте само собой выводятся все данные из бд
Сори все, кому глаза режет мой вопрос)
По моим предположениям вместо цикла нужно поставить условие и поменять первую строку в контроллере, но что я не пытался сделать - не выходит.
Вопрос в том как мне сделать так, чтобы на вкладке "О компании" выводились данные где id = 2, на "Контакты" где id = 3 и т. д. ?
Не в сети
При таком раскладе у меня на сайте само собой выводятся все данные из бд
Вы обьясните свою хотелку более подробно . При таком раскладе как у Вас , Вы выбираете полностью все поля и все строки из таблицы . Если Вам нужны не все данные , а какая то их чать, то сам шаблон и цикл здесь практичечески не при делах. Представьте себе ситуацию , что в таблице будет 1000 000 записей , Вы что ? всю таблицу будете тянуть на клиента ????
Вам нужно поставить условие Where в самом контроллере и уже тянуть на клиента ту часть данных которая Вам нужна .
Это если я правильно понял Вашу проблему .
Например так.\:
public function department_list($name,$id)
{
$product_list = Product::select('product.product_id','product.name','product.description',
'product.price','product.discounted_price','product.thumbnail')
->join('product_category','product.product_id','product_category.product_id')
->join('category','product_category.category_id','category.category_id')
->where('product.display',2)
->orWhere('product.display',3)
->Where('category.department_id',$id)
->orderBy('product.name')
->paginate(20);
return view('products.product_list',['product_list'=>$product_list]);
}
P.S И чувствую , что тут попахивает не реляционной базой данных.
Изменено DzonyBB (10.10.2018 13:23:45)
Не в сети
Ответ:
Убрать цикл в файле about. Удалить dashboards в контроллере и вместо:
'dashboard' => []
написать:
'dashboard' => Dashboard::find(2)
для about страницы, т. к. id инфы которую мне нужно вытащить из БД = 2.
Не в сети
для about страницы, т. к. id инфы которую мне нужно вытащить из БД = 2.
Я опять ничего не понял из Ваших сообщений , видимо плохой из меня телепат . Но если Ваша таблица в базе данных называется Dashboard и Вам нужно получить из нее строку где поле id равно 2 , то нужно сделать как то так .
public function about()
{
$dashboards=Dashboard::where('id',2)->
orderBy('id')->
paginate(16);
return view('upgr.static.about',['dashboards'=>$dashboards]);
}
Не в сети
Dashboard::orderBy('id')->paginate(16)
Dashboard::where('id',2)->orderBy('id')->paginate(16)
Выведет на одной странице 16 записей с id = 2 отсортированных по id(???)
Не в сети
Выведет на одной странице 16 записей с id = 2 отсортированных по id(???)
А разве это кто то оспаривает?????
P.S И чувствую , что тут попахивает не реляционной базой данных.
Я уже намекал об этом ТС . И возможно записей будет не только 16 , а общее к-во может быть непредсказуемым , это известно только ТС.
Не в сети
Страницы 1