Laravel по-русски

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

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

#29 Re: Laravel 4 » Поиск по базе из нескольких полей формы » 18.09.2015 06:47:25

Arat пишет:

Ну, во-первых, $results в конце нужно переинициировать, во-вторых, неа, не пашет sad

Упустил
Странно, но у меня работало и работает, для примера кусок

<?php
class Orders extends Eloquent
{
    public $timestamps = false;

    // ...........

    public static function all($status = null)
    {
        $input = Input::all();
        $queries = Input::get('queries', []);
        $sorts = Input::get('sorts', []);
        $key = null;
        if (!empty($sorts))
        {
            $key = key($sorts);
        }

        $sort = !empty($key) ? $key : 'date_created';
        $order = !empty($sorts) && $sorts[$key] == '-1' ? 'asc' : 'desc';
        $page = !empty($input['page']) ? (int) $input['page'] : 1;
        $rows = !empty($input['perPage']) ? (int) $input['perPage'] : 10;
        $offset = !empty($input['offset']) ? (int) $input['offset'] : 0;

        $records = array();

        $q = self::query();
        $q->where('id_user', Auth::user()->id);

        if (!empty($queries['statusf']) && $queries['statusf'] > 0 && $queries['statusf'] < 5)
        {
            $q->where('status', $queries['statusf']);
        }

        $count = $q->count();

        $q->orderBy($sort, $order);
        $q->skip(($page - 1) * $rows);
        $q->take($rows);

        $orders = $q->get();

        // ..........

#32 Re: Laravel 4 » Как сменить название полей в таблице плагина iConomy » 17.09.2015 14:17:25

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

$data = Iconomy::order_by('iconomy.id', 'desc')
    ->join('table as u1', 'iconomy.id', '=', 'u1.id')
    ->get(array('iconomy.title', 'iconomy.id as id_iconomy', 'u1.id'));

#33 Re: Laravel 4 » Как сменить название полей в таблице плагина iConomy » 17.09.2015 14:03:23

Поменяйте в Ларе, в моделе
К примеру

class Iconomy extends Eloquent {

    protected $primaryKey = 'custom_id';

}

или так попробовать

$data = Iconomy::order_by('i.id', 'desc')
    ->join('table as u1', 'i.id', '=', 'u1.id')
    ->get(array('i.title', 'i.id as id_iconomy', 'u1.id'));

#34 Re: Laravel 4 » Поиск по базе из нескольких полей формы » 16.09.2015 22:29:07

А для чего вам DB::raw()? Какие то сложные выборки?
Как вариант попробуйте, не проверял.

public function search()
{
    $data = Input::all();

    $validator = Validator::make($data, Search::rules(), Search::errors());

    if ($validator->fails())
    {
        return Redirect::back()->withErrors($validator)->withInput();
    }
    else
    {

    	$q = Objects::query();
        $q->whereActive(1);

    	if (!empty($data['id']))
    	{
    		$q->whereId($data['id']);
    	}
    	else
    	{
    		$dat_exactly = ['location_id', 'case_type', 'type_id', 'currency', 'area'];
    		$dat_min_max = ['price', 'area', 'rooms'];

    		foreach ($dat_exactly as $value)
    		{
    			if (!empty($data[$value]))
    			{
    				$q->where($value, $data[$value]);
    			}
    		}

    		foreach ($dat_min_max as $value)
    		{
    			if (!empty($data['min_' . $value]))
    			{
    				$q->where($value, '>=', $data['min_' . $value]);
    			}

    			if (!empty($data['max_' . $value]))
    			{
    				$q->where($value, '<=', $data['max_' . $value]);
    			}
    		}    		
    	}

    }

    return View::make('pages.search', ['results' => $results]);
}

#35 Re: Laravel 4 » Магия!!!!!!!!!!!!! » 16.09.2015 12:05:34

smile
Вася зашел в магазин и не вернулся. Магия!!! Вот стаю уже два часа и не могу понять, в чём проблема?

Ну а теперь серьёзно smile. Попробуйте включить отладку

'debug' => true,

вы увидите сразу ответы на свой вопрос (в каком файле, в какой строке и.т.д), так как

$this->points->where('city', 'like', "$find_cities");

ни о чём не говорит, разве что визуально можно поправить на

$this->points->where('city', 'LIKE', '%'.$find_cities.'%');

#36 Re: Laravel 5.x » Прикрепление файлов » 03.09.2015 20:14:35

stuchin пишет:
Johnson пишет:

Что за пакет Intervention/image? Никто не использовал? Вроде поддержка Laravel есть, также еще к нему можно прикрутить Intervention/imagecache для работы с кешем.

вот рабочий код
if ($image = Input::file('photo'))
{
    $filename  = str_random(6) . '.' . $image->getClientOriginalExtension();
    $path = public_path('/uploads/' . $filename);
    $resizedImage = Image::make($image->getRealPath())->resize(200, 200);
    $resizedImage->response('jpg');
    Storage::put('uploads/' . $filename,  $resizedImage);
}

Зачем всё усложнять? Для чего вы получаете переменную $path, если её не используете?
Ну и если уже пошли путём Intervention Image, так продолжайте:
код

$resizedImage = Image::make($image->getRealPath())->resize(200, 200);

продолжаем

Image::make($image->getRealPath())->resize(200, 200)->save($path,80);

#37 Re: Laravel 5.x » Laravel: Storage работа с изображениями » 19.08.2015 13:10:49

stuchin пишет:

вопрос так и не раскрыт, увы

Посмотрите здесь http://www.codetutorial.io/laravel-5-fi … -download/
У меня L5 не установленная, так-что проверить не могу.

#38 Re: Laravel 5.x » Laravel: Storage работа с изображениями » 18.08.2015 15:53:45

stuchin пишет:

а как сохранять изображения использую Storage

там свой инструмент есть

// open an image file
$img = Image::make('public/foo.jpg');

// resize image instance
$img->resize(320, 240);

// insert a watermark
$img->insert('public/watermark.png');

// save image in desired format
$img->save('public/bar.jpg');

установил, всё есть ресайз http://image.intervention.io/api/resize и.т.д

#40 Re: Laravel 5.x » laravel и БД » 15.08.2015 23:56:25

так-же, https://github.com/laravel/laravel/blob … se.php#L55 , добавьте вторую (третью ... ) базу. К примеру

        'foo' => [
            'driver'    => 'mysql',
            'host'      => env('DB_HOST', 'localhost'),
            'database'  => env('DB_DATABASE', 'forge2'),
            'username'  => env('DB_USERNAME', 'forge2'),
            'password'  => env('DB_PASSWORD', ''),
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
        ],

и затем https://laravel.ru/docs/v5/database#другие.

Я не пойму, документация для кого?

#43 Re: Laravel 5.x » Полнотекстовый поиск » 08.08.2015 20:58:21

Приведу код с L3, поправил запрос под L5, но не проверял

$query = mb_strtolower(Request::input('search'), 'UTF-8');

$tmp = explode(" ", $query);

$query = [];
foreach ($tmp as $word)
{
    $len = mb_strlen($word, 'UTF-8');
    switch (true)
    {
        case ($len > 3 && $len <= 6):
        {
            $query[] = mb_substr($word, 0, -1, 'UTF-8') . "*";
            break;
        }
        case ($len > 6 && $len <= 9):
        {
            $query[] = mb_substr($word, 0, -2, 'UTF-8') . "*";
            break;
        }
        case ($len > 9):
        {
            $query[] = mb_substr($word, 0, -3, 'UTF-8') . "*";
            break;
        }
        default:
            {
            break;
            }
    }
}

$query = array_unique($query, SORT_STRING);
$qQeury = implode(" ", $query);

// Ваша табличка для поиска (у меня просто таблица отдельно созданна для поисчка и при добавлении ремурсов, я весь обработанный текс забиваю в эту таблицу, можно напрямую искать)
$results = Search::whereRaw(
    "MATCH(text,pagetitle) AGAINST(? IN BOOLEAN MODE)", // text,pagetitle - поля, по которым нужно искать
    array($qQeury)
)->paginate(20, array('keys','pagetitle','url', 'text')); // поля, которые нужно вывести

#44 Re: Laravel 5.x » Стоит ли переходить на Laravel » 01.08.2015 13:35:29

попробуйте закоментить https://github.com/laravel/laravel/blob … el.php#L18 18 и 20 строки (CSRF)
Этим вы вообще "отрубите" сесии и CSRF не только для API, а для всей системы.

Наиболее лучший способ, это расширить классы в Middleware (https://github.com/laravel/laravel/tree … Middleware) и поставить собственную логику обработки API.

#45 Re: Laravel 5.x » Сохранение аутентификации при переходе между субдоменами » 30.07.2015 14:05:27

Я бы основной домен перенаправлял на www, тогда бы срабатывало правило одно для всех.
1) сессии - https://github.com/laravel/laravel/blob … n.php#L138 добавить

'domain' => '.site.lan',

2) роутер, если мы указали сессию, то и воспользуемся этой переменной

Route::group(['domain' => '{domain}' . Config::get('session.domain')], function ()

#47 Re: Laravel 4 » При использовании в запросе слияния union не работает orderBy ))) » 23.07.2015 02:14:16

Попробуйте поменять приоритет

$q1 = DB::table('...')
          ...
          ->union($q2)
          ->orderBy(..., ...)
          ->paginate(10);

#48 Re: Laravel » Пакет для Новой Почты (Украина) » 23.07.2015 01:57:57

Я все "левые" классы кидаю в папку app/libs, добавив в авто загрузку эту директорию.
Всё, с любого места

NP::send($xml);

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