Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Здравствуйте. Есть задача реализовать сортировку товаров по возрастанию и по убыванию. Хочу сделать это с помощью Ajax, но немного не понимаю логику.
У меня есть такой вот шаблон, который выводит все товары данной категории:
<div class="d-flex justify-content-end flex-grow">
<div class="sorting d-flex">
<div id = "load"></div>
<div class="sorting-title">
<span>Сортировка по цене</span>
<span id = "ASC">по возрастанию</span>
<span id = "DESC">по убыванию</span>
</div>
<!-- <a href="#" class="sort-btn">Акционные</a> -->
</div>
</div>
</form>
</div>
<div id="items-cnt" class="items-cnt row ">
@foreach($products as $product)
<div id = "product" class="col-12 col-sm-6 col-lg-4">
<item v-on:increase="increaseCounter"
v-on:callworker="callWorkerEmit"
:id={{ $product->id }}
item-name="{{ $product->name }}"
@if($product->old_price_wtf)
:current-price={{ $product->price }}
:old-price={{ $product->old_price_wtf }}
@else
@if(!$product->promotion_id)
:current-price={{ $product->price }}
@else
:current-price={{ $product->promotion_price }}
@endif
@if($product->promotion_id)
:old-price={{ $product->price }}
:special-offer-end={{ $product->promotion_end }}
@endif
@endif
@if($product->is_top_sales) :top-sales=true @endif
@if($product->is_new) :new-item=true @endif
@if($product->length) :ceil-width={{ $product->length }} @endif
@if($product->manufacturer) country="{{ $product->manufacturer->name }}" @endif
item-link="/{{ $product->slug }}/p{{ $product->id }}"
:vendor-code={{ $product->number }}
image-src="/uploads/{{ $product->image }}"></item>
</div>
@endforeach
Вот метод в котором я вывожу все товары в шаблон:
$catalog = ProductCategory::where('slug', $catalog_name)->where('is_available', 1)->firstOrFail();
$main_category = ProductCategory::with('products', 'products.manufacturer', 'products.promotion')->where('slug', $main_category_name)->where('parent_id', $catalog->id)->where('is_available', 1)->firstOrFail();
$new_products = $main_category->products;
foreach($new_products as $product){
$products_ids[] = $product->id;
}
//посмотрите, пожалуйста, правильно ли я обрабатываю идентификатор сортировки, чтобы правильно выводить товары?
if($request->sort_id){
$sort = $request->sort_id;
$products_1 = Product::whereIn('id', $products_ids)->orderBy('price', $sort)->paginate(8);
return json_encode(['products' => $products]);
} else {
$products = Product::whereIn('id', $products_ids)->orderBy('price', 'ASC')->paginate(8);
}
return view('category', compact('catalog', 'main_category', 'products'));
Я пыталась написать Ajax запрос, но немного не понимаю как правильно надо перед в него массив продуктов, а потом этот массив отобразить на странице.
Вот мой Ajax запрос:
@section('footer')
<script>
$(document).ready(function(){
$(".sorting-title span").click(function(){
var id = $(this).attr('id');
$.ajax({
url: '/natyazhnye-potolki/natyazhnye-potolki-plenka',
data: 'sort_id='+id,
type: 'get',
success:function(data) {
$("#product").html(data.products);
}
});
});
});
</script>
@endsection
Здравствуйте. Скажите, пожалуйста, есть ли такие специалисты на форуме, которые работали в Laravel с данной API. Я просто не совсем поняла, как в контексте Laravel с ней работать. Мне надо в шаблон выводить все отделения Новой почты определенного города.
Здравствуйте. Имеется в базе данных поле дата, в котором хранится дата в формате 12.11.1997 . Подскажите, пожалуйста, как мне преобразовать это значение в Unix формат для использования в представлении. В БД дата должна оставаться в таком же формате.
Здравствуйте. Есть форма для создания резюме на сайте. Если человек авторизирован, форма просто обрабатывается контроллером ResumeController и отправляется в таблицу resumes.
Но есть и второй исход событий. Допустим человек не зарегистрирован. Так вот. Задача состоит в том, чтобы при отправке заполненной формы резюме, некоторые поля(а именно, имя, фамилия, год рождения) отправлялись в таблицу для хранения пользователей и человек автоматически регистрировался. А также все поля отправлялись в таблицу с резюме. Возможно ли такое сделать?
Все) Исправила) Просто admin дописала. Огромное спасибо Вам за помощь и потраченное время!:)
Так перестает работать даже индексная страница. Файлы начинают подключаться по пути http://localhost:8000/bootstrap/css/bootstrap.min.css , а должны подключаться по http://localhost:8000/admin/bootstrap/css/bootstrap.min.css
Я тут одну штуку заметила. Открыла код страницы для метода index и для метода сreate вместе. Так вот. Стили то на странице есть, но если index их открывает по такому маршруту http://localhost:8000/admin/bootstrap/css/bootstrap.min.css , то сreate их открывает вот так http://localhost:8000/admin/post/bootstrap/css/bootstrap.min.css. И соответственно мне выдается ошибка при открытии NotFoundHttpException. Походу у него путь к стилям неправильно генерируется. А как это исправить?
А он вообще не видит ни JS ни СSS) Когда просматриваю код страницы есть все файлы. А вот сервер их не видит и не интерпретирует.
Тогда ошибок нет. Там есть единственная ошибка связанная с неправильным написанием команды make при создании контроллера.
[2017-07-25 07:01:51] local.ERROR: Symfony\Component\Console\Exception\CommandNotFoundException: There are no commands defined in the "meke" namespace.
Это последние записи в логах:
#3 D:\xampp\htdocs\blog\vendor\laravel\framework\src\Illuminate\Foundation\Console\Kernel.php(122): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#4 D:\xampp\htdocs\blog\artisan(35): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#5 {main}
Извиняюсь.
Вот head.blade.php
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>AdminLTE 2 | Dashboard</title>
<!-- Tell the browser to be responsive to screen width -->
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<!-- Bootstrap 3.3.6 -->
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
<!-- Font Awesome -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
<!-- Ionicons -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ionicons/2.0.1/css/ionicons.min.css">
<!-- Theme style -->
<link rel="stylesheet" href="dist/css/AdminLTE.min.css">
<!-- AdminLTE Skins. Choose a skin from the css/skins
folder instead of downloading all of them to reduce the load. -->
<link rel="stylesheet" href="dist/css/skins/_all-skins.min.css">
<!-- iCheck -->
<link rel="stylesheet" href="plugins/iCheck/flat/blue.css">
<!-- Morris chart -->
<link rel="stylesheet" href="plugins/morris/morris.css">
<!-- jvectormap -->
<link rel="stylesheet" href="plugins/jvectormap/jquery-jvectormap-1.2.2.css">
<!-- Date Picker -->
<link rel="stylesheet" href="plugins/datepicker/datepicker3.css">
<!-- Daterange picker -->
<link rel="stylesheet" href="plugins/daterangepicker/daterangepicker.css">
<!-- bootstrap wysihtml5 - text editor -->
<link rel="stylesheet" href="plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
Файл header.blade.php
<header>
<a href="index2.html" class="logo">
<!-- mini logo for sidebar mini 50x50 pixels -->
<span class="logo-mini"><b>A</b>LT</span>
<!-- logo for regular state and mobile devices -->
<span class="logo-lg"><b>Admin</b>Blog</span>
</a>
<!-- Header Navbar: style can be found in header.less -->
<nav class="navbar navbar-static-top">
<!-- Sidebar toggle button-->
<a href="#" class="sidebar-toggle" data-toggle="offcanvas" role="button">
<span class="sr-only">Toggle navigation</span>
</a>
<div class="navbar-custom-menu">
<ul class="nav navbar-nav">
<!-- Messages: style can be found in dropdown.less-->
<li class="dropdown messages-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-envelope-o"></i>
<span class="label label-success">4</span>
</a>
<ul class="dropdown-menu">
<li class="header">You have 4 messages</li>
<li>
<!-- inner menu: contains the actual data -->
<ul class="menu">
<li><!-- start message -->
<a href="#">
<div class="pull-left">
<img src="dist/img/user2-160x160.jpg" class="img-circle" alt="User Image">
</div>
<h4>
Support Team
<small><i class="fa fa-clock-o"></i> 5 mins</small>
</h4>
<p>Why not buy a new awesome theme?</p>
</a>
</li>
<!-- end message -->
<li>
<a href="#">
<div class="pull-left">
<img src="dist/img/user3-128x128.jpg" class="img-circle" alt="User Image">
</div>
<h4>
AdminLTE Design Team
<small><i class="fa fa-clock-o"></i> 2 hours</small>
</h4>
<p>Why not buy a new awesome theme?</p>
</a>
</li>
<li>
<a href="#">
<div class="pull-left">
<img src="dist/img/user4-128x128.jpg" class="img-circle" alt="User Image">
</div>
<h4>
Developers
<small><i class="fa fa-clock-o"></i> Today</small>
</h4>
<p>Why not buy a new awesome theme?</p>
</a>
</li>
<li>
<a href="#">
<div class="pull-left">
<img src="dist/img/user3-128x128.jpg" class="img-circle" alt="User Image">
</div>
<h4>
Sales Department
<small><i class="fa fa-clock-o"></i> Yesterday</small>
</h4>
<p>Why not buy a new awesome theme?</p>
</a>
</li>
<li>
<a href="#">
<div class="pull-left">
<img src="dist/img/user4-128x128.jpg" class="img-circle" alt="User Image">
</div>
<h4>
Reviewers
<small><i class="fa fa-clock-o"></i> 2 days</small>
</h4>
<p>Why not buy a new awesome theme?</p>
</a>
</li>
</ul>
</li>
<li class="footer"><a href="#">See All Messages</a></li>
</ul>
</li>
<!-- Notifications: style can be found in dropdown.less -->
<li class="dropdown notifications-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-bell-o"></i>
<span class="label label-warning">10</span>
</a>
<ul class="dropdown-menu">
<li class="header">You have 10 notifications</li>
<li>
<!-- inner menu: contains the actual data -->
<ul class="menu">
<li>
<a href="#">
<i class="fa fa-users text-aqua"></i> 5 new members joined today
</a>
</li>
<li>
<a href="#">
<i class="fa fa-warning text-yellow"></i> Very long description here that may not fit into the
page and may cause design problems
</a>
</li>
<li>
<a href="#">
<i class="fa fa-users text-red"></i> 5 new members joined
</a>
</li>
<li>
<a href="#">
<i class="fa fa-shopping-cart text-green"></i> 25 sales made
</a>
</li>
<li>
<a href="#">
<i class="fa fa-user text-red"></i> You changed your username
</a>
</li>
</ul>
</li>
<li class="footer"><a href="#">View all</a></li>
</ul>
</li>
<!-- Tasks: style can be found in dropdown.less -->
<li class="dropdown tasks-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-flag-o"></i>
<span class="label label-danger">9</span>
</a>
<ul class="dropdown-menu">
<li class="header">You have 9 tasks</li>
<li>
<!-- inner menu: contains the actual data -->
<ul class="menu">
<li><!-- Task item -->
<a href="#">
<h3>
Design some buttons
<small class="pull-right">20%</small>
</h3>
<div class="progress xs">
<div class="progress-bar progress-bar-aqua" style="width: 20%" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100">
<span class="sr-only">20% Complete</span>
</div>
</div>
</a>
</li>
<!-- end task item -->
<li><!-- Task item -->
<a href="#">
<h3>
Create a nice theme
<small class="pull-right">40%</small>
</h3>
<div class="progress xs">
<div class="progress-bar progress-bar-green" style="width: 40%" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100">
<span class="sr-only">40% Complete</span>
</div>
</div>
</a>
</li>
<!-- end task item -->
<li><!-- Task item -->
<a href="#">
<h3>
Some task I need to do
<small class="pull-right">60%</small>
</h3>
<div class="progress xs">
<div class="progress-bar progress-bar-red" style="width: 60%" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100">
<span class="sr-only">60% Complete</span>
</div>
</div>
</a>
</li>
<!-- end task item -->
<li><!-- Task item -->
<a href="#">
<h3>
Make beautiful transitions
<small class="pull-right">80%</small>
</h3>
<div class="progress xs">
<div class="progress-bar progress-bar-yellow" style="width: 80%" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100">
<span class="sr-only">80% Complete</span>
</div>
</div>
</a>
</li>
<!-- end task item -->
</ul>
</li>
<li class="footer">
<a href="#">View all tasks</a>
</li>
</ul>
</li>
<!-- User Account: style can be found in dropdown.less -->
<li class="dropdown user user-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<img src="dist/img/user2-160x160.jpg" class="user-image" alt="User Image">
<span class="hidden-xs">Alexander Pierce</span>
</a>
<ul class="dropdown-menu">
<!-- User image -->
<li class="user-header">
<img src="dist/img/user2-160x160.jpg" class="img-circle" alt="User Image">
<p>
Alexander Pierce - Web Developer
<small>Member since Nov. 2012</small>
</p>
</li>
<!-- Menu Body -->
<li class="user-body">
<div class="row">
<div class="col-xs-4 text-center">
<a href="#">Followers</a>
</div>
<div class="col-xs-4 text-center">
<a href="#">Sales</a>
</div>
<div class="col-xs-4 text-center">
<a href="#">Friends</a>
</div>
</div>
<!-- /.row -->
</li>
<!-- Menu Footer-->
<li class="user-footer">
<div class="pull-left">
<a href="#" class="btn btn-default btn-flat">Profile</a>
</div>
<div class="pull-right">
<a href="#" class="btn btn-default btn-flat">Sign out</a>
</div>
</li>
</ul>
</li>
<!-- Control Sidebar Toggle Button -->
<li>
<a href="#" data-toggle="control-sidebar"><i class="fa fa-gears"></i></a>
</li>
</ul>
</div>
</nav>
</header>
Файл sidebar.blade.php
<aside class="main-sidebar">
<!-- sidebar: style can be found in sidebar.less -->
<section class="sidebar">
<!-- Sidebar user panel -->
<div class="user-panel">
<div class="pull-left image">
<img src="dist/img/user2-160x160.jpg" class="img-circle" alt="User Image">
</div>
<div class="pull-left info">
<p>Catherine Didenko</p>
</div>
</div>
<!-- search form -->
<form action="#" method="get" class="sidebar-form">
<div class="input-group">
<input type="text" name="q" class="form-control" placeholder="Search...">
<span class="input-group-btn">
<button type="submit" name="search" id="search-btn" class="btn btn-flat"><i class="fa fa-search"></i>
</button>
</span>
</div>
</form>
<!-- /.search form -->
<!-- sidebar menu: : style can be found in sidebar.less -->
<ul class="sidebar-menu">
<li class="header">MAIN NAVIGATION</li>
<li class="active treeview">
<a href="#">
<i class="fa fa-dashboard"></i> <span>Blog</span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
<ul class="treeview-menu">
<li class="active"><a href="index.html"><i class="fa fa-circle-o"></i>Posts</a></li>
<li class="active"><a href="index.html"><i class="fa fa-circle-o"></i>Categories</a></li>
<li class="active"><a href="index.html"><i class="fa fa-circle-o"></i>Tags</a></li>
<li class="active"><a href="index.html"><i class="fa fa-circle-o"></i>Users</a></li>
</ul>
</li>
</ul>
</section>
<!-- /.sidebar -->
</aside>
Файл footer.blade.php
<footer class="main-footer">
<div class="pull-right hidden-xs">
<b>Version</b> 2.3.8
</div>
<strong>Copyright © 2014-2016 <a href="http://almsaeedstudio.com">Almsaeed Studio</a>.</strong> All rights
reserved.
</footer>
В файле маршрутов, всего один роут:
Route::resource('admin/post', 'PostController');
Контроллер тоже один - PostController и заполнен у него всего один метод:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class PostController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('admin.post.post');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}
Я вот просто не понимаю где тут может быть ошибка.
Файл, который вызываю в методе create():
@extends('admin/layouts/app')
@section('main-content')
<!-- Content Wrapper. Contains page content -->
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1>
Create post
</h1>
</section>
<div class="box box-primary">
<!-- form start -->
<form role="form">
<div class="box-body">
<div class="form-group">
<label for="title">Post title</label>
<input type="text" class="form-control" id="title" name="title" placeholder="Enter title">
</div>
<div class="form-group">
<label for="subtitle">Post subtitle</label>
<input type="text" class="form-control" id="subtitle" name="subtitle" placeholder="Enter subtitle">
</div>
<div class="form-group">
<label for="slug">Post slug</label>
<input type="text" class="form-control" id="slug" name="slug" placeholder="Enter slug">
</div>
<div class="box-body pad">
<form>
<textarea class="textarea" name="body" placeholder="Place some text here" style="width: 50%; height: 200px; font-size: 14px; line-height: 18px; border: 1px solid #dddddd; padding: 10px;"></textarea>
</form>
</div>
<div class="form-group">
<label for="image">File input</label>
<input type="file" id="image" name="image">
</div>
<div class="checkbox">
<label>
<input type="checkbox" name="status"> Publish
</label>
</div>
</div>
<div class="box-footer">
<button type="submit" class="btn btn-primary">Save</button>
</div>
</form>
</div>
@endsection
А вот файл, от которого унаследована эта вьюха:
<!DOCTYPE html>
<html>
<head>
@include('admin.layouts.head')
</head>
<body class="hold-transition skin-purple sidebar-mini">
<div class="wrapper">
@include('admin.layouts.header')
@include('admin.layouts.sidebar')
@section('main-content')
@show
@include('admin.layouts.footer')
</div>
</body>
</html>
Дело в том, что я думаю, что с виюхой все нормально. Я ее же подключала в индексном методе этого контроллера и все было хорошо. Страничка рендерится и стили на своих местах.
Здравствуйте. Делаю свой небольшой блог. Возникла проблемка с переходами по url. Для создания и редактирования постов создала контроллер PostController. Так вот. У меня неправильно отрабатывают все методы контроллера, кроме @index. Когда пытаюсь зайти по url http://localhost:8000/admin/post/create artisan мне выдает ошибку invalid request (unexpected eof), хотя такой путь существует. Метод как бы отрабатывает, страница рендерится, но выдается пользователю без маломальских стилей.
Вот так:
А должно быть вот так:
Прикрепляю еще список роутов, которые задействованы и ошибку, которую выдает мне сервер.
Буду рада любой помощи.
Страницы 1