Laravel по-русски
Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Знатоки, имею проблему установки модуля корзины Cartalyst Cart.
Исходники:
//composer.json
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"require": {
"laravel/framework": "4.2.*",
"intervention/image": "~2.1",
"way/generators": "~2.0",
"arrilot/laravel-widgets": "1.*",
"fzaninotto/faker": "^1.4",
"cartalyst/cart": "1.1.*"
},
"repositories": [
{
"type": "composer",
"url": "http://packages.cartalyst.com"
}
],
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
]
},
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-update-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "stable"
}
Далее пускаю команду в консоли
PHPphp composer install
и на выхлопе получаю
Could not open input file: composer
Делаю все по инструкции
В чем проблема?
Да, способ, описанный уважаемым Wide, пошел. Большое спасибо!
Там написано For Laravel 4, please use the 1.0 branch!
В том и дело, что ветка 1.0 той же командой ![]()
Попробую этот вариант, отпишусь ![]()
Пакет для виджетов arrilot/laravel-widgets
Столкнулся с вопросом установки этого пакета.
Для версий 4.2 и 5 автор указывает команду для композера
composer require arrilot/laravel-widgetsВ выхлопе баш выдает, что не может установить ибо версия лары не 5 (работаю на версии 4.2).
Кто сталкивался и как обошел эту беду? Возможно есть такие же пакеты для виджетов, которые отлично работают на 4.2 версии?
Т.е. он формируется сам или можно туда запихнуть, скажем id товара из базы?
Не подчерпнул я там идею ![]()
Чтение/запись на каталог с изображениями выставлены?
Статья о пакете Cart в Cartalyst.
Есть вопросы. Не поинимаю где берется
Cart::update('c14c437bc9ae7d35a7c18ee151c6acc0', 2);Cart::update([
'c14c437bc9ae7d35a7c18ee151c6acc0' => [
'id' => 'tshirt',
'name' => 'T-Shirt',
'quantity' => 1,
'price' => 12.50,
],
'63e2d7033fe95b9134a5737503d10ba5' => [
'id' => 'sweatshirt',
'name' => 'Sweatshirt',
'quantity' => 2,
'price' => 98.32,
],
]);Cart::remove([
'c14c437bc9ae7d35a7c18ee151c6acc0',
'63e2d7033fe95b9134a5737503d10ba5',
]);Т.е. откуда берется вот этот хэш, или id, вообще что это? Буду очень благодарен за разъяснение!
dd(Tag::find(1)->photos) что выводит?
Column not found: 1054
Unknown column 'projects.tag_id'
Ошибка то какая?
Судя по примеру из доков, это не будет работать с manyToMany. Нужен tag_id в projects.
Ну и должно быть $this->hasManyThrough('Photo', 'Project')
Ошибки нет. Просто не тянет фото из базы.
Блин, tag_id в projects не пойдет - много-ко-многим с tags через пивотную таблицу.
Какие могут быть варианты тогда?
//Tag.php
public function projects() {
return $this->belongsToMany('Project');
}
public function photos() {
return $this->hasManyThrough('Project', 'Photo', 'project_id', 'tag_id');
}
//Project.php
public function tags() {
return $this->belongsToMany('Tag');
}
public function photos() {
return $this->hasMany('Photo');
}
//Photo.php
public function project() {
return $this->belongsTo('Project');
}
//TagController.php
$tag = Tag::getTag($id);
$tags = Tag::getTags();
return View::make('pages.services')->with('tag', $tag)->with('tags', $tags);
Понятно, что сейчас фото не выводит. Вот я и не могу понять как вывести фото для $tag = Tag::getTag($id);
Подскажите, плиз!
Хм... это при выводе всех тегов.
У меня задача немного иная. При вызове конкретного тега, нужно вывести фото всех проектов, которые относятся к этому тегу.
Не могу я вкурить как правильно применить hasManyThrough...
полиморфия не нужна. во-первых есть hasManyThrough, во-вторых, если выводятся проекты и их фото в привязке к проектам, то можно просто их загрузить вместе. eager loading поддерживает загрузку вложенных связей. %%(php)Tag::with('projects.photos')->get()%% загрузит и проекты и их фотографии.
Апдейт.
Проекты не выводятся. Выводятся только их фото. Получилось так, что выводит только фото последнего (по id) проекта.
Не получается, блин ![]()
Вся неприятность в том, что есть поля цены "от" и "до", количество комнат "от" и "до".
Т.е. в запросе нужно искать помимо того значения между этими "от" и "до"...
Действительно почему.
Например есть форма на 10 полей, все не обязательные т.е. пользователь может заполнить как 1 так и 10 полей.
А у себя смотришь поле 1 заполнено, валидацию прошло - при составлении запроса добавляешь AND поле1=значение формы1 и так далее.
В итоге получится запрос на поиск по полям которые заполнил пользователь.
Ну как видится мне:
Валидацию формы провести, потом проверить на наличие в в полях данных. И в зависимости от результата перебирать возможные запросы.
Думал, может есть универсальный метод.
Всем привет!
Подскажите, пожалуйста, как можно грамотно реализовать поиск по нескольким полям формы.
Диспозиция: есть сайт по поиску недвижимости.
Форма поиска: местоположение, кол-во комнат (от-до), площадь (от-до), стоимость (от-до), etc.
Т.е. заполнение всех полей не обязательно.
Как можно рганизовать такую систему? В построении сложных запросов не спец совсем еще
А проверять кучу вариантов полей, что заполнено, что нет и перебирать от этого разные запросы — тупо.
Какие идеи могут быть? Спасибо, ребята!!
Мой способ маршрутизации, пока не подводил
если есть какие то комментарии или поправки буду рад услышать
Table "languages" fields ['abbr', 'title', 'is_default']
'is_default' - boolean?
// Project.php
public function photos() {
return $this->hasMany('Photo');
}
//TagController.php
public function getTag($id) {
$photos = Tag::getPhotos($id);
}
//Tag.php
public static function getPhotos($id) {
$photos = Tag::with('projects.photos')->get();
return $photos;
}
Спасибо, ребята!