Laravel по-русски

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

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

#26 Re: Laravel 4 » Установка чужого проекта » 10.02.2015 17:42:15

Wide пишет:

Рекомендую прочитать книгу "Laravel: Code Bright". Возможно появится хотя бы базовое понимание.

присоединяюсь к теме прочитать книгу, так же есть как видео уроки так и текстовые по созданию сайта на laravel 4
к ним лучше приступать с базовыми навыками, читайте документацию. Удачи в начинаниях с laravel и Welcome  smile

#27 Re: Laravel 4 » Установка чужого проекта » 09.02.2015 15:53:24

Сделай composer update, Создай базу,подключить её,
Сделай php artisan migrate. Что препятствует? Если что то не так в файле composer.json поменяй версию с 4.1.* на 4.2.*

#28 Re: Laravel 4 » Использование сырого выражения » 09.02.2015 11:57:10

Решено!!!!

$rating = DB::table('users')
            ->select(DB::raw('*, raiting, count_votes, ((LOG(POW(max(count_votes), 1/10),count_votes))+raiting)/2 as actual_raiting'))
            ->orderBy("actual_raiting")
            ->get();

спасибо чуваку со stackoverflow под ником lukasgeiter

#29 Laravel 4 » Использование сырого выражения » 08.02.2015 18:44:45

nemocoder
Ответов: 1

Помогите понять что не так и что я не так делаю

есть код SQL

select @a:=POW(max(count_votes), 1/10) from users;

select id,name,raiting, count_votes, ((LOG(@a,count_votes))+raiting)/2 as actual_raiting from users order by actual_raiting desc ;

делаю так выдает ошибку синтаксиса

public function getRat()
    {
        
        $rating = DB::statement('select @a:=POW(max(count_votes), 1/10) from users;

select raiting, count_votes, ((LOG(@a,count_votes))+raiting)/2 as actual_raiting from users order by actual_raiting desc; ');

        return $rating;
    }

пробывал вот так но не получается не считает как нужно

$rating = DB::table('users')
                        ->select(DB::raw('*, @a:=POW(max(count_votes), 1/10)  
                            raiting, count_votes, 
                            ((LOG(@a,count_votes))+raiting)/2 AS actual_raiting'))
                        
                        ->orderBy("actual_raiting")
                        ->get();

        return $rating;

#30 Re: Laravel 4 » загрузка изоброжения » 29.01.2015 22:41:44

Quiss пишет:

}%%%(php)
if( $upload_success ) {
      echo "Ваш файл успешно загружен";                 
} else {
      echo "Ошибка загрузки";
}
%%

аа это что ли)
так все же не работает
то есть работает так просто стоит можно сказать
в бд идет только название файла например avatar.jpg и все (

#31 Re: Laravel 4 » загрузка изоброжения » 29.01.2015 19:04:18

Quiss пишет:

}%Ну ладно, уговорил))

%%(php)
                if (Input::hasFile('image'))
                {
                    $extension = Input::file('image')->getClientOriginalExtension();
                    $original = Input::file('image')->getClientOriginalName();
                    $upload_success = Input::file('image');
                    $filename = sha1(time().rand(000000000,999999999).time()).".{$extension}";
                    $upload_success->move("./uploads/",$filename);
                    if( $upload_success ) {
                       
                    } else {

                    }
                }
%%

а можете до пинать  варианты в

if( $upload_success ) {
                        
                    } else {

                    }

smile

#32 Re: Laravel 4 » загрузка изоброжения » 29.01.2015 18:12:02

Quiss пишет:

}%Форму покаж ещё... smile

 
{{ Form::open(array('url' => 'api/v1/users/passenger', 'role' => 'form', 'class' => 'form-horizontal'))}}

                                        <div class="form-group input-group" style="margin-left:1px;">
                                            <span class="input-group-addon"><i class="fa fa-circle-o-notch"  ></i></span>
                                            <input type="text" class="form-control" placeholder="Ваше имя"  required="true" name="name"/>
                                        </div>
                                     <div class="form-group input-group" style="margin-left:1px;">
                                            <span class="input-group-addon"><strong>+7</strong></span>
                                            <input type="text" class="form-control" placeholder="Моб. телефон"  required="true" name="phone_number" size="10" maxlength="10" />
                                        </div>
                                         <div class="form-group input-group" style="margin-left:1px;">
                                            <span class="input-group-addon">@</span>
                                            <input type="email" class="form-control" placeholder="Email"  required="true" name="email"/>
                                        </div>
                                      <div class="form-group input-group" style="margin-left:1px;">
                                            <span class="input-group-addon"><i class="fa fa-lock"  ></i></span>
                                            <input type="password" class="form-control" placeholder="Пароль" required="true" name="password" />
                                        </div>
                                     <div class="form-group input-group" style="margin-left:1px;">
                                            <span class="input-group-addon"><i class="fa fa-lock"  ></i></span>
                                            <input type="password" class="form-control" placeholder="Повторите пароль"  required="true" name="password_confirmation"/>
                                        </div>

                                    <input type="file" class="filestyle" data-icon="false" name="image">
                                    <small class="">Загрузите портретную фотографию</small>
                                     <input class="btn btn-success" type="submit" value="Зарегестрироваться">
                                {{ Form::close() }}

#33 Laravel 4 » загрузка изоброжения » 29.01.2015 17:18:33

nemocoder
Ответов: 8

Вообщем вопрос такой как мне пропихнуть загрузку изображения на серв, есть регистрационная форма, в этой же форме мне нужно
может кто сталкивался

 
public function postPassenger() {
        $rules = User::$validation;
        $validation = Validator::make(Input::all(), $rules);
        if ($validation->fails()) {
            return Redirect::to('api/v1/users/passenger')->withErrors($validation)->withInput();
        }
        $user = new User();
        $user->fill(Input::all());
        $id = $user->register();
        return $this->getMessage("Регистрация почти завершена. Вам необходимо подтвердить e-mail, указанный при регистрации, перейдя по ссылке в письме.");
    }
//////
User.php
public function register() 
	{
        $this->password = Hash::make($this->password);
        $this->activationCode = $this->generateCode();
        $this->save();
        Log::info("User [{$this->email}] registered. Activation code: {$this->activationCode}");
        $this->sendActivationMail();
        return $this->id;
    }

#34 Re: Laravel 4 » Проблема с Eloquent » 18.12.2014 16:32:14

lieroes пишет:

Оба решения должны выдавать одинаковый результат.

$user = User::find(Auth::id());
$cashes = $user->cashes; // в модели пользователя должно быть указано отношение "cashes" $this->hasMany('Cash').

Ниженаписаный код 100% должен работать, там нечему выдавать ошибку.

$cashes = Cash::where('user_id', '=', $user_id)->get()

Да спасибо, разобрался.  smile

#35 Re: Laravel 4 » Проблема с Eloquent » 13.12.2014 22:12:51

Wide пишет:
nemocoder пишет:

теперь есть в таблице cash -> user_id не могу понять как получать cash по полю user_id

Cash::where('user_id', '=', $user_id)->get()

А лучше узнать про отношения http://laravel.com/docs/4.2/eloquent#relationships


ну так вот с отношением модели Cash и User привязываю счет к пользователю теперь пытаюсь обновлять привязанный счет


насчет where пробывал ругается на поля un, delivery_un pay_un

#36 Re: Laravel 4 » Проблема с Eloquent » 13.12.2014 21:43:33

lieroes пишет:

Задача не очень ясна, но может я все таки угадал и одно из решений подходит? smile

$import_id = 1; // нужный тебе ID в таблице "import"
$import = Import::find($id);

// 1-ый вариант
$cash_id = 1; // нужный тебе ID в таблице "cash"
$cash = Cash::find($cash_id);
$cash->un = $cash->un - ($import->pay_un + $import->delivery_un + $import->amt);
$cash->save();

// 2-ой вариант
$cash_id = 1;
$cash = Cash::find($cash_id);
$cash_2 = Cash::create(array('un' => $cash->un - ($import->pay_un + $import->delivery_un + $import->amt));
$user = User::find(Auth::id());
$user->cashes()->save($cash_2);



вот делаю так, отнимается

                                $cash_id = 36;
                                $cash = Cash::find($cash_id);
				$cash->un = $cash->un - (($order->pay_un + $order->delivery_un) * $order->amt);
				$user = Auth::user();
				
				$user->cashes()->save($cash);

для теста сойдет, теперь есть в таблице cash -> user_id не могу понять как получать cash по полю user_id

$user_id = Auth::user()->id;
$cash = Cash::find($user_id);//не работает и не должно вроде бы

#37 Re: Laravel 4 » Проблема с Eloquent » 13.12.2014 15:12:10

lieroes пишет:

Задача не очень ясна, но может я все таки угадал и одно из решений подходит? smile

$import_id = 1; // нужный тебе ID в таблице "import"
$import = Import::find($id);

// 1-ый вариант
$cash_id = 1; // нужный тебе ID в таблице "cash"
$cash = Cash::find($cash_id);
$cash->un = $cash->un - ($import->pay_un + $import->delivery_un + $import->amt);
$cash->save();

// 2-ой вариант
$cash_id = 1;
$cash = Cash::find($cash_id);
$cash_2 = Cash::create(array('un' => $cash->un - ($import->pay_un + $import->delivery_un + $import->amt));
$user = User::find(Auth::id());
$user->cashes()->save($cash_2);

спасибо

#38 Re: Laravel 4 » Проблема с Eloquent » 12.12.2014 16:51:27

Proger_XP пишет:

}%> Cash::find('un');
Это аналогично %%SELECT * FROM cash WHERE id = 'un'%%. Подозреваю, что это не то, что ты хочешь сделать.

p.s: переименуй тему во что-то более подходящее.

получается он ищет id со значением un ? и так все ?

#39 Laravel 4 » Проблема с Eloquent » 12.12.2014 15:51:51

nemocoder
Ответов: 9

Задача такова нужно отнять   от поля (un) сумму из полей amt, pay_un, delivery_un и сохранить делаю так

$val1 = Import::find('pay_un');
$val2 = Import::find('delivery_un');;
$val3 = Import::find('amt');
$val4 = Cash::find('un');
$data = $val4 - ($val3 * ($val1 + $val2));
$cash = new Cash();

$cash->un = $data;
$user = Auth::user();

$user->cashes()->save($cash);

это действие обнуляет поле (un)

#40 Re: Laravel 4 » Laravel-Excel » 06.12.2014 17:28:10

Nelzz пишет:

Спасибо. Кстати я тоже из Казахстана, Атырау smile

Круто) Я из Уральска, живу, работаю и учусь в Алмате smile

#41 Re: Laravel 4 » Laravel-Excel » 06.12.2014 10:57:05

Nelzz пишет:

nemocoder, как в бд заносишь таблицу ? покажи код,тоже делаю такую фишку интересно.

легко
контроллер

.......
Excel::load(public_path().$dir.$filename , function($reader)
        	{
        		$result = $reader->get();
        		foreach ($result as $key => $value) {
					//для проверки можешь с перва вывести так посмотреть берутся ли значения 
                                        //echo $value->date.'----'.$value->name.'----'.$value->adress_to.'----'.$value->operator.'<br>';
					
					//Model->твоя модель
                                          $data = Model::postAdd($value);


        		}
        	})->get();
        //return Redirect::to('/io')->with('success', 'You have been importing xls');

модель

protected $table = 'твоя таблица';
protected $fillable = array(
		
        'date', 
        'name',
        'adress_to',
        'operator',
        
        
    );
public static function postAdd($exelData)
{ 
	$post = Import::create([
			'date' => $exelData['date'],
			'name' => $exelData['name'],
			'adress_to' => $exelData['adress_to'],
			'operator' => $exelData['operator']
			
	]);
		return $post;
}

#42 Re: Laravel 4 » БД уведомления » 04.12.2014 11:41:35

Мама Немокодера пишет:

Сынок, обратной связи с MySQL не существует, на MsSQL такое можно реализовать на ActiveX.
Если хочешь сделать костыль на MySQL, рекомендую сделать под события отдельную таблицу, например, Events и писать туда события (лучше добавь триггеры которые сами при записи в определенные таблицы будут писать в Events).
А на фронтэнде в фоновом режиме, ajax скрипт до усеру читает Events.
Хотя мама может и ошибаться

ок ок big_smile

#43 Re: Laravel 4 » Laravel-Excel » 03.12.2014 01:29:24

решение
роут

Route::post('/upload', 'ImportController@uploadFile');

контроллер

public function uploadFile()
	{		
        $dir = '/uploads'.date('/Y/m/d/');
        
        do {
            $filename = str_random(30).'.xls';
        } while (File::exists(public_path().$dir.$filename));

        Input::file('file')->move(public_path().$dir, $filename);
        
        Excel::load(public_path().$dir.$filename , function($reader)
        	{
        		$result = $reader->get();
        		do Something
        	})->get();

	}

форма

{{ Form::open(array('url' => '/upload', 'action' => 'ImportController@uploadFile', 'method' => 'post', 'role' => 'form', 'class' => 'form-horizontal', 'files' => true)) }}
                                @include('temp/form')

                                <div class="form-group">
                                    <div class="col-sm-2">&nbsp;</div>
                                    <div class="col-sm-5">
                                        <button type="submit" class="btn btn-primary submit-button">Импорт</button>
                                    </div>
                                </div>
{{ Form::close() }}

//form
{{ Form::label('file', 'Excel/XLS:') }}
{{ Form::file('file')}}

#44 Re: Laravel 4 » Laravel-Excel » 02.12.2014 08:46:20

nemocoder пишет:

что я делаю не так ?

 
$dir = '/uploads'.date('/Y/m/d/');
        
        do {
            $filename = str_random(30).'.xls';
        } while (File::exists(public_path().$dir.$filename));

        Input::file('file')->move(public_path().$dir, $filename);
        
        return Response::json(array('filelink' => $dir.$filename));
        Excel::load(public_path().$dir.$filename, function($reader){
            ----------
}

понял что совсем ни то, как правильнее сразу лоадить файл без загрузки на серв

#45 Re: Laravel 4 » Laravel-Excel » 02.12.2014 02:25:37

что я делаю не так ?

 
$dir = '/uploads'.date('/Y/m/d/');
        
        do {
            $filename = str_random(30).'.xls';
        } while (File::exists(public_path().$dir.$filename));

        Input::file('file')->move(public_path().$dir, $filename);
        
        return Response::json(array('filelink' => $dir.$filename));
        Excel::load(public_path().$dir.$filename, function($reader){
            ----------
}

#46 Re: Laravel 4 » Laravel-Excel » 28.11.2014 03:07:59

Серго пишет:

Это засунуть в модель

public function postAdd($exelData)
{ 
	$post = SomeModel::create([
			'data' => $exelData['data'],
			'name' => $exelData['name'],
			'operatory' => $exelData['operatory']
	]);
}

это в контроллер

public function actionIndex(){
	Excel::load('public/upload/raim.xls', function($reader){

		$result=$reader->select(array('data', 'name','operatory'))->get();
	
	})->get();

	$res = Model::postAdd($retust);

	return $res
}

не работает

#47 Re: Laravel 4 » Laravel-Excel » 27.11.2014 18:33:23

 
public function actionIndex()
 {
  Excel::load('public/upload/raim.xls', function($reader)
  {
   $result=$reader->select(array('data', 'name','operatory'))->get();

   //var_dump($result);

  })->get();

  
 }

тут получается я открыл xls и выбрал нужные поля

как теперь их записать в таблицу из бд?

например из формы делается же так

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

             
        $post = SomeModel::create($data);
        
    }

#48 Re: Laravel 4 » Laravel-Excel » 27.11.2014 16:01:48

Так что ни кто не может помочь?

#49 Laravel 4 » Laravel-Excel » 25.11.2014 20:50:22

nemocoder
Ответов: 18

http://www.maatwebsite.nl/laravel-excel/docs

кто нибудь использовал это?

мне нужно импорт/экспорт Excel файла а так же показать и возможность редактировать, у кого нибудь встречалась такая задача ?

#50 Re: Laravel 4 » БД уведомления » 21.11.2014 11:34:32

Proger_XP пишет:

}%Уведомлений у БД как таковых нет, нужно держать список последних выданных пользователю уведомлений и при каждом запросе страницы проверять нужные таблицы на новые записи и уведомлять о них, если они найдены.

спасибо за ответ

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