Laravel по-русски

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

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

#53 Re: Laravel 5.x » hQuery unable to create socket » 06.04.2016 09:52:09

Может потому, что используется https на том сайте, котором хотите пропарсить?

#54 Laravel 5.x » Не верно работает работа с авторизацией » 05.04.2016 21:25:10

dima9595
Ответов: 7

Продолжаю делать сайт. Дошёл до авторизации.

Контроллер:

<?php
namespace App\Http\Controllers\Auth;
use App\User;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ThrottlesLogins;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;

## Модели
use App\Models\Forum\Forum; // Модель форума

use Illuminate\Support\Facades\Validator;
use Illuminate\Http\Request;
use Redirect;

class AuthController extends Controller{
    use AuthenticatesAndRegistersUsers, ThrottlesLogins;
    protected $redirectTo = '/';

    public function __construct(){
        $this->middleware($this->guestMiddleware(), ['except' => 'logout']);
    }

    protected function validator(array $data){
        return Validator::make($data, [
            'login_users' => 'required|min:4|max:60',
            'mail_users' => 'required|email|min:4|max:255|unique:users',
            'password' => 'required|min:6|confirmed:password_confirmation',
            'password_confirmation' => 'required|min:6',
            'iAgree' => 'accepted'
        ]);
    }

    ## Страница авторизация
    public function getLogin(){
        return view('Auth.getLogin');
    }

    public function postLogin(Request $request){
        $data = $request->all();
        $dataSave = $request->flashExcept('password');

        $v = $this->validator($data);

        if($v->fails()){
            // Если есть ошибки
            return redirect()->back()->withErrors($v->errors())->withInput($dataSave);
        }else{

        }
    }
}

Дизайн:

<div class="control-group {{($errors->first('login_users') ? 'error' : '')}}">
    <label class="control-label" for="login_users">Логин:</label>
    <div class="controls">
        {{ Form::text('login_users', '', ['placeholder' => 'Введите ваш логин']) }}
        <span class="help-inline">{{($errors->first('login_users') ? $errors->first('login_users') : '')}}</span>
    </div>
</div>

<div class="control-group {{($errors->first('password') ? 'error' : '')}}">
    <label class="control-label" for="password">Пароль:</label>
    <div class="controls">
        {{ Form::password('password', ['placeholder' => 'Введите ваш пароль']) }}
        <span class="help-inline">{{($errors->first('password') ? $errors->first('password') : '')}}</span>
    </div>
</div>

<div class="control-group">
    <div class="controls">
        <button type="submit" class="btn btn-success">Войти</button>
    </div>
</div>

Всё вроде работает, но вот к паролю пишется ошибка, мол пароль не совпадает. Что делать?

#55 Re: Laravel 5.x » Пути к контроллерам и моделям » 05.04.2016 15:00:04

Ух, как всё сложно))) Теперь опять хочу на L4)

Спасибо)

#56 Laravel 5.x » Пути к контроллерам и моделям » 04.04.2016 21:56:48

dima9595
Ответов: 3

Ох, ребзя, решил всё таки перейти на L5. Сделал только регу, а гемороя столько было с путями. Уже хз что будет, если проект разрастётся...
Суть:
Я привык к старому, доброму L4. Теперь мне эти "use", неймспейсы, совсем в гроб заведут. Как лучше настроить всё, что бы было как в L4?

Например, сейчас я к роуту пишу так:

Route::get('auth/login', ['as' => 'auth.login', 'uses' => 'Auth\AuthController@getLogin']);

Auth, соответственно, папка внутри папки контроллеров.

В модели пишут аж так:

\Models\Forum\Forum::createUser()....

Создал папку для моделей (так мне удобнее)...находится App/Models/Forum/... А если нужно будет больше вложений!?

PS: Читал, мол можно решить проблему - добавляя алиасов в app.php. Но как по мне - это не есть хорошо.

Может у вас как нить по другому!? За ответы заранее благодарю!)

#57 Re: Laravel 5.x » Laravel 5 и PHP7 » 22.03.2016 10:23:31

Благодарю за ответ. Чтож, переходим'с)

#58 Laravel 5.x » Laravel 5 и PHP7 » 22.03.2016 09:47:43

dima9595
Ответов: 2

Всем привет! Хочу перейти на Laravel 5 и PHP7. Хотелось бы узнать, есть ли в Laravel'е поддержка PHP7?

#59 Re: Laravel 4 » Ошибка при отправки AJAX'а. » 11.11.2015 12:28:32

Понятно, а что на счёт отправки JS? Есть мысль как исправить?

#60 Laravel 4 » Ошибка при отправки AJAX'а. » 10.11.2015 01:02:27

dima9595
Ответов: 3

Доброго времени суток! Начал делать отправку сообщения по AJAX (jQuery), но выходит ошибка 200, а так же информация о том, что это не JSON (php).

Контроллер:

class PostsController extends BaseController{ 

	public function jsonPosts(){
		if(Request::ajax()){
			// Если это Ajax запрос
			if(Request::isJson()){
				// Если это JSON
				echo 'JSON';
			}else{
				// Если это не JSON
				echo 'Not JSON';   <=================== Всегда выходит
			}
		}else{
			// Если это не Ajax запрос 
			echo 'Not AJAX';
		}
	}
}

Роут:

Route::post('posts/addpost', ['as' => 'jsonPosts', 'uses' => 'PostsController@jsonPosts']);

Шаблон:

<div class="brd">
	{{Form::token()}}
	{{Form::textarea('text_posts', '', ['class' => 'grid12', 'id' => 'addPosts', 'placeholder' => Lang::get('site.pages.home.posts.addPosts.placeholder'), 'style' => 'resize: none;', 'rows' => '3'])}}
	<div class="fl" id="statusInfo"></div>
	{{Form::button(Lang::get('site.pages.home.posts.addPosts.button'), ['type' => 'submit', 'class' => 'btn btn-success fr', 'onclick' => 'Posts.addPosts()'])}}
	<div class="clearfix"></div>
</div>

JS:

function Posts(){

	this.addPosts = function(){
		var textPost = $("#addPosts").val();
		var countTextPost = textPost.length;
		var statusInfo = $("#statusInfo");

		if(countTextPost < 1){
			$(statusInfo).html('<div class="text-info">Вы не ввели ни чего!</div>');
		}else if(countTextPost < 5){
			$(statusInfo).html('<div class="text-info">Слишком мало символов!</div>');
		}else if(countTextPost >= 5){
			$(statusInfo).html('<div class="text-success">Всё готово!</div>');

			$.ajax({
				url: 'posts/addpost',
			 	type: 'POST',
			 	dataType: 'json',
			 	data: {"textPost": "textPost"},
			 	complete: function(xhr, textStatus){
			    	//called when complete
			    	console.log(xhr);
			  	},
			  	success: function(data, textStatus, xhr){
			    	//called when successful
			    	console.log('Success');
			  	},
				error: function(xhr, textStatus, errorThrown){
					//called when there is an error
					console.log('Error');
				}
			});
			
		}
	};
}

var Posts = new Posts();

Уже какой час бьюсь об стену, помогите пожалуйста!

И ещё один вопрос, а как сделать CSRF защиту при AJAX?

#61 Laravel 4 » Ошибка при передачи сообщения Mail » 30.10.2015 14:42:50

dima9595
Ответов: 0

Всем привет!
Суть ошибки такова: При регистрации хочу отправить E-Mail сообщение пользователю, с теми данными, которые я получаю при регистрации. Но выходит следующая ошибка:

Undefined variable: dataMail

Код контроллера:

$data = Input::all(); // Получаем все данные с формы

// Какой-то код
...
// Если всё успешно - отправляем на почту данные
MailGun::mailActivations(['login_users' => $data['login_users'], 'mail_users' => $data['mail_users'], 'code' => $setMailActivation], true);

Код модели:

class MailGun extends Eloquent{

	/**
	 * Отправка E-Mail для активации аккаунта
	 * @param  array   $dataMail [Данные для отправки]
	 * @param  boolean $method   [Использовать очередь (false) или нет (true)]
	 */
	public static function mailActivations(array $dataMail, $method = false){
		if($method == true){
			Mail::send('Mails.activations', $dataMail, function($message){
				$message->to($dataMail['mail_users'])->subject('Активация аккаунта!');	// Кому
				$message->from('AutoBot@minesoulproject.ru', 'MSP.Ru');	// От кого
			});
		}else{
			// Отправлять с задержкой
			Mail::queue('Mails.activations', $dataMail, function($message){
				$message->to($dataMail['mail_users'])->subject('Активация аккаунта!');	// Кому
				$message->from('AutoBot@minesoulproject.ru', 'MSP.Ru');	// От кого
			});
		}
	}
}

Не подскажите как исправить?

#62 Re: Laravel 4 » Как сменить название полей в таблице плагина iConomy » 18.09.2015 16:05:31

Решено! Использование "protected $primaryKey = 'id_users'" в модели User помогло.

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

А использование в модели User.php "protected $primaryKey = 'id_users';" (соответсвенно смены имени таблицы в БД) поможет решить мою задачу7

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

К сожалению не смог исправить текст сообщения, так что сейчас добавлю: Таблицу от плагина я не могу трогать, так как сервер обращается к полю "id". Так что или переписывать плагин, или же сделать так, что бы работа с пользователями в Laravel велась по полю "id_users" (например) вместа "id".

#65 Laravel 4 » Как сменить название полей в таблице плагина iConomy » 17.09.2015 12:55:27

dima9595
Ответов: 6

Ребят, не знаю больше куда ещё писать...

Столкнулся с проблемой - пишу свой сайт на Laravel со связкой игрового сервера Minecraft. Все плагины подключены к MySQL. Для работы с пользователями требуется обязательное имя поля id - "id" (это в Laravel). В плагине, при подключении к MySQL, поле идентификатор (id) имеет тоже такое же название - "id" (iConomy). При работе на сайте, я заметил, что при использование SQL функции "join" происходит ошибка, мол поля "id" одинаковые. Собственно вопрос: Как изменить поле, по которому работает плагин iConomy!?

Для информации:
PHP Framework: Laravel 4.x,
Iconomy: Iconomy 6.

Заранее спасибо!

#66 Re: Laravel 4 » Сайт оффлайн, как сделать? » 29.08.2015 22:49:50

Zamarawka пишет:

Почему здесь пишут только дегинераты? я то думал будет что-то полезное на форуме, а тут люди которые даже инструкцию ленятся прочесть...
php artisan down... и будет твое приложение выключено

При чём тут инструкция? Я просил помощи по моему коду, а не про функцию artisan. И вы назвали меня дегинератом, при том, что сами даже не дочитали (скорей всего) мой пост...

#67 Laravel 4 » Сайт оффлайн, как сделать? » 14.08.2015 18:00:11

dima9595
Ответов: 2

Всем привет. Делаю сайт и столкнулся с одной проблемой. Нужно сделать так, что бы появлялась страница сайт выключен если в конфигах указано что сайт выключен.
Пробовал сувать в "app\start\global.php" модель "Engine:siteOffline();", но страница ошибки не показывалась.
Код модели:

public static function siteOnline(){
		/**
		* Включён ли сайт
		*/
		$online = Config::get('config.engine.online');

		if($online['online'] == false){
			// Если сайт выключен
			return View::make('errors.offline')->with('offline', $online);
		}
	}

Модель то рабочая, но почему-то не срабатывает, а именно не показывается шаблон.

Попробовал запихать в filters.php (просто совсем хз что делать), но у меня не подгружаются картинки, а они нужны.

Может кто подскажет, а!?

#68 Re: Laravel 4 » Laravel 4. Ошибка с URL. » 10.08.2015 20:42:38

Всё, разобрался. Нужно было в консоле сервера написать "sudo a2enmod rewrite". И перезапустить Apache.

#69 Laravel 4 » Laravel 4. Ошибка с URL. » 10.08.2015 20:00:13

dima9595
Ответов: 1

Суть темы такова: Перенёс свой сайт на виртуальную машину под ОС Ubuntu 14.04. Перехожу на главную страницу сайта - всё нормально, но если заходить на другой любой роут - выкидывает ошибку 404: "Not Found. The requested URL /login was not found on this server." Если использовать URL следующим образом, то будет всё нормально: "сайт.ру/index.php/login".
Что делать, подскажите пожалуйста!)

#70 Re: Laravel 4 » Функция dd() » 03.08.2015 19:51:18

exFAT пишет:
dima9595 пишет:

В 4 Laravel'е есть такая функция!

Она то есть, но работает совсем не так как в 5.  https://laravel-news.com/2014/12/larave … s-upgrade/
там появилась подсветка, можно складывать массивы, раскладывать.

Ну что нет, того и нет. Попробуйте через функцию print_r() вызывать то, что нужно. Так код более понятен. А если ещё к этому использовать HTML теги pre и code, то вообще загляденье)

#71 Re: Laravel 4 » Как убрать дублирующиеся слэши Laravel 4.2 в url? » 03.08.2015 19:49:00

Решил на днях проверить данную ошибку на многих сайтах - у всех работает так же. Т.е. нет ни какой проверки на кол. слэшей, так что не переживайте.

"И как сделать так, чтобы в конце URL на категории (если она не имеет расширения .html) доставлялся закрывающийся слэш, показывающий, что там содержаться статьи?"
Я не знаю точно как в Laravel это можно сделать, но попробуйте поработать с .htaccess.

#74 Re: Laravel 4 » Проверка существования постов в виде » 25.02.2015 16:40:36

Дмитрий пишет:

dima9595, Вам нужно где-то в отдельно блоке указать, есть ли posts? Или если есть, то вывести их, а если нет, то вывести "Постов нет"?
Если так, то в blade можно сделать так:

@forelse( $posts as $post )
    {{-- Выводим тут данные, если есть --}}
@empty
    <p>Постов нет!</p>
@endforelse

Благодарю за совет.

Я сделал так:

@if(isset($posts) AND !$posts->isEmpty())
	@foreach($posts as $post)
		Вывод постов
	@endforeach
@else
	Нет постов
@endif

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