Laravel по-русски

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

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

#1 Re: Laravel 5.x » Перенос сайта с MODX Revo на Laravel 5 » 30.08.2016 11:24:04

sequelone пишет:

Всем привет. Начал изучать Laravel, очень занятный фреймворк. Поставил стандартный Auth который идёт из коробки. Вопрос в следующем. В MODX Revo по умолчанию пароли юзеров хешируются в PBKDF2, а в Laravel 5.3 из коробки Auth хеширует пароли в bcrypt. Подскажите можно ли как-то конвертнуть пароли из одной системы шифрования в другую без потерь? Запасной вариант, если каких-то наработок нет, можно ли хешировать пароли в PBKDF2 и в загруженной таблице юзеров с MODX пароли оставить как есть и чтобы авторизация с регистрацией работала с PBKDF2?


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


Вот две реализации шифрования PBKDF2
https://packagist.org/packages/vjroby/laravel-pbkdf2
https://packagist.org/packages/gponster/laravel-pbkdf2
Сам не проверял, извини.

В самом приложении надо будет поменять код создания записи в бд (по дефолту, кажется, в AuthController->create)
плюс сделать свой трейт, как реализацию Authenticatable, где введенный при логировании пароль будет шифроваться через PBKDF2 и сравниваться со строкой в БД

#2 Re: Laravel 5.x » работа с БД » 06.07.2016 14:38:05

Ира, вместо создания нового объекта и его сохранения

$post = new Post;
$post->title = $title;
$post->body = $body;
$post->save();

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

$post = Post::create([
   'title' => $title,
   'body' => $body,
]);

#3 Re: Laravel 5.x » Подскажите правильное направление » 05.07.2016 20:29:19

Чтобы у каждой страницы был  свой татйл, можно
1. на каждой странице указывать его явно. Передавать из контроллера как свойство или "зашивать" тайтл в темплейте (шаблоне). Это плохой вариант

2. Сделать шаблон-лэйаут (blade-template layout) где прописать примерно следующее
<html lang="en">
<head>
    @section('head')
        <title>@yield('title') - Timers Project</title>
        <link rel="stylesheet" href="{{ asset('bootstrap-3.3.6-dist/css/bootstrap.min.css') }}">

        <script src="{{ asset('js/jquery-1.11.2.min.js') }}"></script>

    @show


Главное здесь - запись   @yield('title')
это означает что тайтл можно менять на любой странице\шаблон, к-ая будет наследовать этот лэйаут

Далее, делаем шаблон конкретной страницы, наследуемся от этого лэйаута и указываем тот тайтл, к-ый надо

@extends('layouts.app')

@section('title', 'Work - Single Orders')

Эти 2 строки будут у вас на каждой странице, где вы захотите поменять тайтл

Надеюсь понятно объяснил

Здесь на сайте в документации можно почитать об этом в разделе шаблонов и blade-шаблонов
https://laravel.ru/docs/v5/blade

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