Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Re: Laravel 4 » Composer ошибка установки » 21.04.2014 17:06:03

вообщем, берём вот эту команду:
c:/OpenServer/modules/php/PHP-5.4.26/php.exe -i | grep 'Configuration File'

Покажет, где находятся php.ini файл.
Можно запихнуть в тот же c:\windows, но лучше всего запихнуть в папку, с которой запускаем сам php, т.е. в  c:/OpenServer/modules/php/PHP-5.4.26/

#2 Re: Laravel 4 » Eloquent ORM Models self relations » 18.04.2014 16:08:17

Не знаю, поможет или нет, но https://github.com/lazychaser/cruddy тут есть self relation, в демо аппе посмотрите.

#3 Re: Laravel 4 » CMS на laravel 4 » 13.04.2014 07:05:20

хочется посмотреть какие модели созданы, что за файлы генерит CMS и т.д.

p.s. вы всегда верите в то, что написано на упаковке?

#4 Laravel 4 » CMS на laravel 4 » 12.04.2014 21:03:05

newbie
Ответов: 4

Случайно нашёл CMSку под laravel 4.

http://mangopik.com/lcrud.2.1/ - вот админка. Покопался - понравился crud builder.

Раньше юзал https://github.com/FrozenNode/Laravel-Administrator и https://github.com/lazychaser/cruddy

Но в этом CMS всё в одном.

Есть одно "но" - она платная. Стоит 20 бачей. Может есть на форуме кто купил уже эту CMSку? Поделитесь плиз архивчиком - хочу протестить - если понравится - обяз куплю.

#5 Re: Laravel 4 » [L4] STI или polymorphic relations, нужен совет » 28.08.2013 16:53:20

3 вариант насколько я понял смахивает на STI, сейчас читаю вот эту статью:
snooptank()com/single-table-inheritance-with-eloquent-laravel-4/

оттуда нашёл решение
https://gist.github.com/asakurayoh/4100877

сейчас пробую

#6 Laravel 4 » [L4] STI или polymorphic relations, нужен совет » 28.08.2013 13:34:47

newbie
Ответов: 3

У меня есть модель Beneficiary. В начале подразумевалось, что Beneficiary будет одним человеком, но потом выяснилось, что он может быть и сообществом.

Т.е. надо наследоваться от Beneficiary на 2 модели:

Beneficiary
— id
— name

Person
— gender

Group
— amount_female
— amount_male

Что лучше использовать?
Нативно ларавел 4 поддерживает полиморфные связи, но так и не понял как его юзать и стоит ли его юзать вообще.

#7 Re: Laravel 4 » Как пользоваться laravel.com/api? » 23.08.2013 10:20:11

нет, про сам метод я понял как работает.

вот где его найти в самой API?

и про «как пользоваться» я имел в виду api, а не метод ’is’.

#8 Laravel 4 » Как пользоваться laravel.com/api? » 22.08.2013 20:22:41

newbie
Ответов: 3

В общем, в данный момент курю разные мануалы и туториалы. В одной из таковых нашёл такую конструкцию:

PHP
<li class="{{ (Route::is('home')) ? 'active' : null }}"><a href="{{ route('home') }}">Home</a></li>

Здесь для себя нашёл 2 новые вещи:

1) метод is класса Route — в документации не нашёл

2) route(’home’) — как это сделано?

По первому пункту начал искать в API и не смог найти, как им вообще пользоваться. В старом api хоть как-то разбирался. А сейчас вообще не догоняю.

#9 Re: Laravel 4 » [L4] Позднее использование paginate » 17.08.2013 08:56:57

В общем, решил я проблему.

Надо было сделать так:

PHP
$aids $aids->paginate(10);

И всё заработало.

#10 Re: Laravel 4 » [L4] Позднее использование paginate » 17.08.2013 08:10:38

Да я понимаю что он правильный, но у меня конструкция выглядит так:

PHP
            $aids Aid::with('program''ben''branch''aid_type');
            if (
Input::has('department')) {
                
$programs Department::find(Input::get('department'))->programs()->lists('id');
                
$aids $aids->whereIn('program_id'$programs);
            }
            if (
Input::has('program')) {
                
$aids $aids->where('program_id''='Input::get('program'));
            }
            if (
Input::has('aid_type')) {
                
$aids $aids->where('aid_type''='Input::get('aid_type'));
            }

           
$aids->paginate(10);

т.е. у меня не получится в одну строчку всё запихнуть

#11 Laravel 4 » [L4] Позднее использование paginate » 16.08.2013 21:09:07

newbie
Ответов: 4

В общем, есть у меня модель Aid, я хочу сделать выборку, а потом использовать paginate:

PHP
$a Aid::all();

$a $a->where('received_at''>''2013-14-08');

$a->paginate(10);

Но так не пашет, я знаю, что нужно юзать paginator, но можно ли как-то по другому всё сделать, без использования paginator?

Получается только так можно делать:

PHP
$a Aid::where('received_at''>''2013-14-08')->paginate(10);

#13 Laravel 3 » Комменты в blade » 19.04.2013 14:21:12

newbie
Ответов: 2

Как их использовать?

PHP
<div class="span4">
      {{ 
Form::label('name''Наименование') }}
      {{ 
Form::text('name'$order->name, array('class'=> 'span3''placeholder' => 'Наименование товара')) }}
      {{ 
Form::label('url''Ссылка') }}
      {{ 
Form::url('url'$order->url, array('class'=> 'span3''placeholder' => 'Ссылка на товар')) }}

скажем вот мой кусок кода. я хочу закомментировать вот это:

PHP
      {{ Form::label('url''Ссылка') }}
      {{ 
Form::url('url'$order->url, array('class'=> 'span3''placeholder' => 'Ссылка на товар')) }}

если я делаю {{-- --}} то коммент работает только в одну строку и то в конце выводится "?> —}}"

#14 Re: Laravel 3 » Отношение многие ко многим, помогите плиз » 15.04.2013 21:27:58

sqlSELECT *
FROM order_user
JOIN role_user
USING ( user_id )
JOIN orders ON ( orders.id = order_user.order_id )
WHERE (
role_user.role_id !=19
OR order_user.user_id =18
)

где 19 — это айдишник роли, а 18 это айдишник текущего пользователя.

PHP
$orders DB::table('order_user')
        ->
join('role_user''order_user.user_id''=''role_user.user_id')
        ->
join('orders''orders.id''=''order_user.order_id')
        ->
where('role_user.role_id''!='19)
        ->
or_where('order_user.user_id''='18)
        ->
for_page(110)
        ->
get();

вот запрос через fluent

вроде так получается?

#15 Laravel 3 » Отношение многие ко многим, помогите плиз » 15.04.2013 19:05:32

newbie
Ответов: 1

Есть такие таблицы:

PHP
user
order
order_user
role
role_user

У каждого юзера может быть один или несколько заказов, у заказа может быть несколько юзеров, а может и не быть.

В свою очередь есть роли у пользователей (admin, manager, shipper).

Вопрос, как возвратить заказы, у которого нет пользователя с определенной ролью, например manager.

Это мне надо для того, чтобы показывать пользователям с ролью manager только те заказы, которые ему присвоены и те, которые не присвоены никому с такой ролью.

Это делается через Fluent запросы?

#16 Re: Laravel 3 » Атрибуты модели » 12.04.2013 21:33:48

Там где используется статический метод update или create, где передается массив и айдишник это не прокатит?

PHP
$orderinfo = array(
  
'name' => Input::get('name'),
  
'process_at' => Input::get('process_at'),
  
'price' => Input::get('price'),
);

Order::update($id$orderinfo);

#18 Laravel 3 » Атрибуты модели » 08.04.2013 18:02:53

newbie
Ответов: 4

У меня есть несколько полей в БД например, process_at, arr_cn_at и т.д. с префиксом at.

Как сделать проверку на атрибут, если он имеет префикс at, то возвращать в каком-то формате.

Сейчас сделал так:

PHP
public function get_process_date()
    {
        
$date $this->get_attribute('process_at');
        return (
$date)?date('d.m.Y'strtotime($date)):Null;
    }

    public function 
get_arr_cn()
    {
        
$date $this->get_attribute('arr_cn_at');
        return (
$date)?date('d.m.Y'strtotime($date)):Null;
    }

    public function 
get_arr_kg()
    {
        
$date $this->get_attribute('arr_kg_at');
        return (
$date)?date('d.m.Y'strtotime($date)):Null;
    }


    public function 
set_process_date($date)
    {
        
$this->set_attribute('process_at', ($date)?new DateTime($date):Null);
    }

    public function 
set_arr_cn($date)
    {
        
$this->set_attribute('arr_cn_at', ($date)?new DateTime($date):Null);
    }

    public function 
set_arr_kg($date)
    {
        
$this->set_attribute('arr_kg_at', ($date)?new DateTime($date):Null);
    }

Как видите код сильно разросся. Это можно как-то лаконично сделать?

Или может быть указать в массиве атрибуты, чтобы они возвращались в каком-то формате? Есть подобное?

#20 Re: Laravel 3 » Помогите освоиться » 07.04.2013 16:38:36

Спасибо еще раз. Вынесу в контроллер.

А насчет Order::$accessible не думал, что можно "на лету" изменять.

#21 Re: Laravel 3 » Помогите освоиться » 06.04.2013 21:35:30

И еще вопрос, у меня есть форма.
Если он admin или manager, то все поля можно обновлять данного объекта, а если shipper, то только пару полей. например, если есть поля:

PHP
name
url
notes
ship_at
delivery_at

то shipper может изменить только ship_at и delivery_at.

на ум приходит только это:
взять 2 массива

PHP
$orderinfo_all = array(
  
'name' => Input::get('name'),
  
'url' => Input::get('url'),
  
'notes' => Input::get('notes'),
  
'ship_at' => Input::get('ship_at'),
  
'delivery_at' => Input::get('delivery_at'),
);

$orderinfo_ship = array(
  
'ship_at' => Input::get('ship_at'),
  
'delivery_at' => Input::get('delivery_at'),
);

а потом

PHP
Order::update($id$user->is('Shipper')?$orderinfo_ship:$orderinfo_all);

так сойдет или есть более правильный путь?

#22 Re: Laravel 3 » Помогите освоиться » 06.04.2013 21:16:46

  1. правильно ли я сделал?

Вместо where()->or_where() я бы сделал вложенный where(), так как может получиться, что для менеджера вернётся запрос с установленными условиями manager_id = X OR manager_id = 0, а в коде затем добавится ещё одно and-условие и запрос станет некорректным без скобок:

PHP
...::get_orders($user)->where('x''=''y');
// = SELECT ... WHERE manager_id = X OR manager_id = 0 AND x = 'y'

Вложенный WHERE:

PHP
static::where(function ($query) {
  
$query->where('manager_id''='$user->id)->or_where('manager_id''='0);
});

спасибо. а вообще правильно что в модели все эти проверки делаю?

#23 Re: Laravel 3 » Помогите освоиться » 05.04.2013 20:12:22

public static function get_orders($user)
    {
    	if ($user->is('Admin')) {
    		return static::query();
    	}
        if ($user->is('Manager')) {
            return static::where('manager_id', '=', $user->id)->or_where('manager_id', '=', 0);            
        } elseif ($user->is('Shipper')) {
            return static::where('shipper_id', '=', $user->id)->or_where('shipper_id', '=', 0);
        } elseif ($user->is('Dealer')) {
            return static::where('user_id', '=', $user->id);
        }        
    }

это у меня в модели. все работает. правильно ли я сделал?

#24 Re: Laravel 3 » Вывод отформатированной даты в input » 05.04.2013 19:25:11

сам же отвечу на свой вопрос - через геттеры и сеттеры в методе

#25 Laravel 3 » Вывод отформатированной даты в input » 05.04.2013 19:01:01

newbie
Ответов: 1
{{ Form::label('process_date', 'Дата заказа') }}
{{ Form::text('process_date', $order->process_date, array('class'=>'datepicker'))}}

process_date - возвращает дату "2013-04-12 00:00:00". Как сделать так, чтобы она возвращала в другом формате, например 12.04.2013?

Подвал раздела