• Проблема с путями загрузки файлов?

    ubukulov
    @ubukulov
    Веб-разработчик
    Попробуйте так:
    $path = base_path() . "/storage/posts/";
    Ответ написан
    Комментировать
  • Почему php выводит вопросительные знаки вместо русских букв?

    ubukulov
    @ubukulov
    Веб-разработчик
    Понятно. Судя по вашему коду вижу у вас переменная $vars это не массив, а строка.

    А вы пытайтесь получить как массив.
    $vars = [
    'aбвгде', 'еёжзийк', 'лмнопрс', 'туфхцчш', 'щъыьэюя'
    ];
    echo $vars[0];
    echo $vars[1];
    echo $vars[2];
    echo $vars[3];
    Ответ написан
  • Как выполнить запрос в Laravel?

    ubukulov
    @ubukulov
    Веб-разработчик
    Во первых у вас в запросе ошибка. Она должно быть как-то так.
    SELECT * FROM `cards` 
    INNER JOIN `mechanics_field` ON `mechanics_field`.card_id=`cards`.id
    WHERE `mechanics_field`.`mechanics_id` = 1 and `cards`.`cost` = 3


    А этот же запрос в конструкторе Laravel:

    $result = DB::table('cards')
    	->join('mechanics_field', 'mechanics_field.mechanics_id', '=', 'cards.mechanic_id')
    	->where(['mechanics_field.mechanics_id' => 1, 'cards.cost' => 3])
    	->get();


    А если имеется модель Card, то можно так написать:
    $result = Card::where(['mechanics_field.mechanics_id' => 1, 'cards.cost' => 3])
    			->select('cards.*')
    			->join('mechanics_field', 'mechanics_field.mechanics_id', '=', 'cards.mechanic_id')
    			->get();
    Ответ написан
    Комментировать
  • Метод в контроллере, который может вернуть редирект или значение?

    ubukulov
    @ubukulov
    Веб-разработчик
    private function test($data){
        if($data){
          return redirect()->back();
        } else {
          $data = true;
        }
        return redirect(url($data));
      }
    Ответ написан
    Комментировать
  • Как запустить cron job в Laravel?

    ubukulov
    @ubukulov
    Веб-разработчик
    $schedule->command('stocks:cron')->cron("*/15 * * * *"); каждый 15 минут

    По расписание можно посмотреть тут

    https://en.wikipedia.org/wiki/Cron
    Ответ написан
  • Larvel как сделать редирект и передать данные?

    ubukulov
    @ubukulov
    Веб-разработчик
    Попробуйте использовать resource

    Route::resource('category', 'CategoryController');
    Ответ написан
    Комментировать
  • Почему не удаляется строка в PhpMyAdmin?

    ubukulov
    @ubukulov
    Веб-разработчик
    Попробуйте сделать следующее.

    По сути запрос по удаление строку правильно.

    В конце есть пункты, где данный момент (по картинку) указано сохранить и затем "Вернуться на предыдущую страницу" вот где "Предыдущую" попробуйте указать другой пункт.
    Ответ написан
    Комментировать
  • Как правильно сформировать условие?

    ubukulov
    @ubukulov
    Веб-разработчик
    if (!empty($_FILES['image']['name'])) {  // вам не кажется что тут и в блоке elseif условие одинакого, соответственно
                                                                 // первый блок сработывает, и не заходить второй блок    
            $tmp_name = $_FILES['image']['tmp_name'];
            $finfo = finfo_open(FILEINFO_MIME_TYPE);
            $file_type = finfo_file($finfo, $tmp_name);
            if ($file_type !== "image/jpeg") {
                $valid_errors['image'] = 'Загрузите картинку в формате JPEG';
            }
        } elseif (!empty($_FILES['image']['name'])) {
            $tmp_name = $_FILES['image']['tmp_name'];
            $finfo = finfo_open(FILEINFO_MIME_TYPE);
            $file_type = finfo_file($finfo, $tmp_name);
            $filename = 'img' . DIRECTORY_SEPARATOR . uniqid() . '.jpg';
            $lot['image'] = $filename;
            move_uploaded_file($_FILES['image']['tmp_name'], __DIR__ . DIRECTORY_SEPARATOR . $filename);
        } else  {
            $valid_errors['image'] = 'Вы не загрузили файл';
        }
    Ответ написан
  • Почему файл не загружается на сервер?

    ubukulov
    @ubukulov
    Веб-разработчик
    Попробуйте указать полный путь.

    $file_dist = $_SERVER['DOCUMENT_ROOT'] . "/uploads/".basename($file_name);
    Ответ написан
  • Как подключить репозиторий GitLab на винде?

    ubukulov
    @ubukulov
    Веб-разработчик
    Попробуй так.

    git remote add origin https://github.com/max/project.git
    Ответ написан
    Комментировать
  • Почему возникает ошибка?

    ubukulov
    @ubukulov
    Веб-разработчик
    Попробуй написать такой вариант.
    <? use Html; ?>
    
    <h1><?= Html::encode($this->title) ?></h1>
    Ответ написан
  • Как правильно валидировать данные в Laravel?

    ubukulov
    @ubukulov
    Веб-разработчик
    Попробуйте использовать GetHint Request . То есть так:

    use App\Http\Requests\GetHint as GetHintRequest;
    ......
    public function show(GetHintRequest $request)
        {
            $hint = Hint::where('id', $request->hintId)->first();
    
            return new HintResource($hint);
        }
    Ответ написан
    2 комментария
  • В чем может быть проблема с сессией laravel?

    ubukulov
    @ubukulov
    Веб-разработчик
    Попробуй во всех формах поставить следующие. Этот код создает токен.

    {{ csrf_field() }}
    Ответ написан
  • Как сделать отдельную форму входа средствами laravel?

    ubukulov
    @ubukulov
    Веб-разработчик
    Лучше сделать 2 контроллера. Один для админку и второй для пользователей.

    Вот код:

    <?php
    namespace App\Http\Controllers\Admin;
    use App\Admin;
    use Validator;
    use Illuminate\Support\Facades\Auth;
    use App\Http\Controllers\Controller;
    use Illuminate\Foundation\Auth\ThrottlesLogins;
    use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
    use Illuminate\Http\Request;
    class AuthController extends Controller
    {
        /*
        |--------------------------------------------------------------------------
        | Registration & Login Controller
        |--------------------------------------------------------------------------
        |
        | This controller handles the registration of new users, as well as the
        | authentication of existing users. By default, this controller uses
        | a simple trait to add these behaviors. Why don't you explore it?
        |
        */
        use AuthenticatesAndRegistersUsers, ThrottlesLogins;
        /**
         * Where to redirect users after login / registration.
         *
         * @var string
         */
        protected $redirectTo = '/admin/dashboard';
        /**
         * Create a new authentication controller instance.
         *
         * @return void
         */
        public function __construct()
        {
            $this->middleware('guest', ['except' => 'logout']);
        }
        /**
         * Get a validator for an incoming registration request.
         *
         * @param  array  $data
         * @return \Illuminate\Contracts\Validation\Validator
         */
        protected function validator(array $data)
        {
            return Validator::make($data, [
                'username' => 'required|max:255',
                'email' => 'required|email|max:255|unique:users',
                'password' => 'required|min:6|confirmed',
            ]);
        }
        /**
         * Create a new user instance after a valid registration.
         *
         * @param  array  $data
         * @return User
         */
        protected function create(array $data)
        {
            return Admin::create([
                //'name' => $data['name'],
                //'email' => $data['email'],
                'password' => bcrypt($data['password']),
            ]);
        }
        public function showLogin(){
            return view('admin/login');
        }
        public function authenticate(Request $request){
            if (Auth::guard('admin')->attempt(['username' => $request->get('username'), 'password' => $request->get('password')])) {
                return redirect()->intended('admin/dashboard');
            }else{
                return redirect()->back()->with('message', 'Логин или пароль не правильный');
            }
        }
        protected function guard(){
            return Auth::guard('admin');
        }
        protected function username(){
            return 'username';
        }
        public function logout(){
            Auth::guard('admin')->logout();
            return redirect()->route('home');
        }
    }
    
    Вот контроллер для пользователей:
    
    <?php
    namespace App\Http\Controllers\Usr;
    use App\User;
    use Illuminate\Support\Facades\DB;
    use Illuminate\Support\Facades\Hash;
    use Validator;
    use Illuminate\Support\Facades\Auth;
    use App\Http\Controllers\Controller;
    use Illuminate\Foundation\Auth\ThrottlesLogins;
    use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
    use Illuminate\Http\Request;
    use Cookie;
    use App\Card;
    class AuthController extends Controller
    {
        /*
        |--------------------------------------------------------------------------
        | Registration & Login Controller
        |--------------------------------------------------------------------------
        |
        | This controller handles the registration of new users, as well as the
        | authentication of existing users. By default, this controller uses
        | a simple trait to add these behaviors. Why don't you explore it?
        |
        */
        use AuthenticatesAndRegistersUsers, ThrottlesLogins;
        /**
         * Where to redirect users after login / registration.
         *
         * @var string
         */
        protected $redirectTo = '/user/account';
        /**
         * Create a new authentication controller instance.
         *
         * @return void
         */
        public function __construct()
        {
            $this->middleware($this->guestMiddleware(), ['except' => 'logout']);
        }
        /**
         * Get a validator for an incoming registration request.
         *
         * @param  array  $data
         * @return \Illuminate\Contracts\Validation\Validator
         */
        protected function validator(array $data)
        {
            return Validator::make($data, [
                'username' => 'required|max:255',
                'email' => 'required|email|max:255|unique:users',
                'password' => 'required|min:6|confirmed',
            ]);
        }
        /**
         * Create a new user instance after a valid registration.
         *
         * @param  array  $data
         * @return User
         */
        protected function create(array $data)
        {
            return User::create([
                //'name' => $data['name'],
                //'email' => $data['email'],
                'password' => bcrypt($data['password']),
            ]);
        }
        public function showLogin(){
            return view('user/login');
        }
        public function authenticate(Request $request){
            if (Auth::attempt(['mphone' => $request->get('username'), 'password' => $request->get('password')])) {
                $this->checkPartnerAuth();
    //            if(Cookie::has('store')){
    ////                return redirect(Cookie::get('cert'));
    //                return redirect('/cart');
    //            }
                if(isset($_SESSION['REQUEST_URI'])){
                    return redirect('/store'.$_SESSION['REQUEST_URI']);
                }
                return redirect()->intended('user/account');
            }else{
                return redirect()->back()->with('message', 'Логин или пароль не правильный');
            }
        }
        protected function username(){
            return 'mphone';
        }
        # проверка
        public function checkPartnerAuth(){
            if(Auth::guard('partner')->check()){
                Auth::guard('partner')->logout();
            }
        }
        # форма сброса пароля пользователя
        public function showResetForm(){
            return view('user/password-reset');
        }
        # сброс пароля
        public function reset(Request $request){
            $phone = $request->get('username');
            $password = generateCode(4);
            $hash_password = Hash::make($password);
            sendSms($phone,"Vash noviy parol: $password");
            $result = DB::update("UPDATE users SET password='$hash_password' WHERE mphone='$phone'");
            if($result){
                return redirect()->back()->with('message', 'Пароль успешно сброшен. Новый пароль отправлено на ваш номер.');
            }
        }
        # форма регистрации нового пользователя
        public function showRegisterForm(){
            return view('user/user-register');
        }
        
        # регистрация нового пользователя
        public function register(Request $request){
            $password = generateCode(4);
            $hash_password = Hash::make($password);
            $phone = $request->get('username');
            $balance = __encode('0', env('KEY'));
            $data = [
                'firstname' => $request->get('firstname'), 'lastname' => $request->get('lastname'),
                'email' => $request->get('email'), 'mphone' => $phone, 'fm' => $balance,
                'referral' => $request->get('id_referral'), 'password' => $hash_password
            ];
            if(User::check_user_by_phone($phone)){
                $lastInsertId = User::create($data)->id;
                if($lastInsertId){
                    Auth::loginUsingId($lastInsertId, true);
                    Card::setCard($lastInsertId);
                    sendSms($phone, "Vashy dannye: Login: $phone, parol: $password");
                    return redirect('user/account');
                }
            }else{
                return redirect()->back()->with('message', 'Пользователь с таким номер уже зарегистрирован');
            }
        }
    }
    
    Ниже посредники.
    
    Посредник для админку.
    <?php
    namespace App\Http\Middleware;
    use Closure;
    use Illuminate\Support\Facades\Auth;
    class RedirectIfNotAdmin
    {
        /**
         * Handle an incoming request.
         *
         * @param  \Illuminate\Http\Request  $request
         * @param  \Closure  $next
         * @return mixed
         */
        public function handle($request, Closure $next)
        {
            if (Auth::guard('admin')->check()) {
                return redirect('/admin/dashboard');
            }
            return $next($request);
        }
    }
    
    Посредник для пользователей:
    <?php
    namespace App\Http\Middleware;
    use Closure;
    use Illuminate\Support\Facades\Auth;
    class RedirectIfAuthenticated
    {
        /**
         * Handle an incoming request.
         *
         * @param  \Illuminate\Http\Request  $request
         * @param  \Closure  $next
         * @param  string|null  $guard
         * @return mixed
         */
        public function handle($request, Closure $next, $guard = null)
        {
            if (Auth::guard($guard)->check()) {
                return redirect('/');
            }
            return $next($request);
        }
    }


    Примерно так
    Ответ написан
  • Почему функция on click делает два клика?

    ubukulov
    @ubukulov
    Веб-разработчик
    Попробуйте так
    $(document).ready(function(){
           $("..scroll-nav-next").on("click", function(){
                  $('.nav-scroller nav').animate( { scrollLeft: '+=100' }, 100);
                  console.log(555);
           });
    });
    Ответ написан
    Комментировать
  • Почему не отправляется форма?

    ubukulov
    @ubukulov
    Веб-разработчик
    1) у вас в форме должно отправиться _token

    <form action="javascript:void(null)" id="form" onsubmit="followPrice(this)" enctype="multipart/form-data" method="post">
                                    {{ csrf_field() }}
                            	<input type="text" class="form-control" name="title" placeholder="Название"><br>
                            	<textarea class="form-control" rows="7" name="message" placeholder="Текст"></textarea><br>
                            	<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
                            	<!-- <label for="inputFile">Картинка: </label>
                            	<input type="file" id="inputFile" ng-model="newData.image"><br> -->
                            	<input type="submit" class="btn btn-primary" value="Добавить">
                            </form>
    
    потом в JS получаешь форму так:
    
    <code lang="javascript">
    function followPrice(form) {
    
        var data = $(form).serialize();
    
        $(form).find(".errors").html("");
    
        $.ajax({
            method: "POST",
            url: "/api/ajax/follow-price",
            data: data,
    </code>
    Ответ написан
    Комментировать
  • Как в Laravel прописать роут для всех страниц кроме главной?

    ubukulov
    @ubukulov
    Веб-разработчик
    Route::get('/', function () {
        return view('main');
    });
    
    // для всех остальных страницы через группы пишешь 
    Route::group();
    Ответ написан
    Комментировать
  • Как правильно составить запрос к БД Laravel 5.6.?

    ubukulov
    @ubukulov
    Веб-разработчик
    Таблица Новости примерно так. news(id, title, ...)
    Таблица Категории categories(id, title)
    Таблица category_news(id, category_id, news_id)
    
    В модели Category пишешь метод news
    
    public function news(){
          $news_ids =  $this->hasMany("\App\CategoryNews", "category_id", "id"); // тут получаешь ид всех новостей с таблицы category_news
          $ids = "";
          foreach($news_ids as $item){
                $ids .= $item->news_id . ",";
          }
          $ids = rtrim($ids, ",");
          $news = DB::select("SELECT * FROM news WHERE id IN($ids)");
          return $news;
          
    }
    
    как-то так. Попробуйте!
    Ответ написан
  • Почему не работает ссылка storage laravel?

    ubukulov
    @ubukulov
    Веб-разработчик
    попробуй ссылка указать так. base_path()
    Ответ написан
    Комментировать
  • Как зарузить фотографии в базу даных в Laravel?

    ubukulov
    @ubukulov
    Веб-разработчик
    public function store(Request $request) {
           $this->validate($request, [
                 'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
            ]);
    
      $article = new Carouseleinfos();
      if ($request->hasFile('images')) {
          $dir = public_path('/images/carousele');
          $extension = strtolower($request->file('images')->getClientOriginalExtension()); // get image extension
          $fileName = str_random() . '.' . $extension; // rename image
          $path_image = $dir . $fileName;
          $request->file('images')->move($dir, $fileName);
          $image->images = $fileName;
    
      }
        $article->text1 = $request->get('text1');
        $article->text2 = $request->get('text2');
        $article->images = str_slug($request->get('images')); // возможно тут сохранить путь к файлу  $path_image
        $article->textbutton = $request->get('textbutton');
        $article->linkbutton = $request->get('linkbutton');
    
        $article->save();
        return view('crud_4/index');
    }
    
    }
    Ответ написан
    Комментировать