Laravel по-русски

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

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

#1 Re: Laravel 5.x » Ошибка при переименовывании столбцов » 08.08.2021 10:22:13

Подсказали решение на другом сайте:

your problem because your doctirne/dbal: v3 , try to downgrade to v2 , like this :- doctrine/dbal": "^2.12" this issue related with your problem :- https://github.com/doctrine/dbal/issues/4439

ошибка исчезла. все работает теперь.

#2 Re: Laravel 5.x » Ошибка при переименовывании столбцов » 07.08.2021 06:07:53

Всегда есть объяснение ошибке. Надо разобраться.
Мб я предоставил мало информации?

#3 Re: Laravel 5.x » Ошибка при переименовывании столбцов » 06.08.2021 15:00:42

Да вот три штуки сверху

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

#5 Re: Laravel 5.x » Ошибка при переименовывании столбцов » 05.08.2021 16:00:03

Да конечно проект работает. Другие миграции по добавлению полей работают без проблем.
А миграция с переименовыванием полей в таблице выдает ошибку.

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

#6 Re: Laravel 5.x » Ошибка при переименовывании столбцов » 05.08.2021 14:54:51

Удалил свою строку.

После выполнения

composer require doctrine/dbal

в файле composer.json добавилась строка

"doctrine/dbal": "^3.1",

Пытаюсь сделать миграцию и опять та же ошибка

In MySqlConnection.php line 65:

  Class 'Doctrine\DBAL\Driver\PDOMySql\Driver' not found

Вот содержания файла миграции:

<?php

class ChangeFieldMessagesTables extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('messages', function (Blueprint $table) {
            $table->renameColumn('username', 'name');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('messages', function (Blueprint $table) {
            //$table->renameColumn('name', 'login');
        });
    }
}

#7 Re: Laravel 5.x » Ошибка при переименовывании столбцов » 05.08.2021 09:13:42

Я устанавливал Laravel через Composer.

Вот полностью мой файл с одной добавленной строчкой:

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.6.4",
        "laravel/framework": "5.4.*",
        "laravel/tinker": "~1.0",
        "doctrine/dbal": "^3.0"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~5.7"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "scripts": {
        "post-root-package-install": [
            "php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ],
        "post-install-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postInstall",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postUpdate",
            "php artisan optimize"
        ]
    },
    "config": {
        "preferred-install": "dist",
        "sort-packages": true,
        "optimize-autoloader": true
    }
}

#8 Laravel 5.x » Ошибка при переименовывании столбцов » 05.08.2021 08:46:31

Mick_20
Ответов: 13

Здравствуйте,

Прохожу обучающий курс по Laravel и застрял на переименовывании столбцов таблицы.

При выполнении миграции:

php artisan migrate --path=database/migrations/messages

Выдает:

Class 'Doctrine\DBAL\Driver\PDOMySql\Driver' not found

Прочитал, что требуется doctrine/dbal

Я зашел в файл composer.json и дописал в нем строку

"require": {
        "php": ">=5.6.4",
        "laravel/framework": "5.4.*",
        "laravel/tinker": "~1.0",
        "doctrine/dbal": "^3.0"
    },

Далее запустил в терминале команду composer update

Но данные манипуляции все равно не устранили ошибку.

Подскажите, где я что упускаю?

#9 Re: Laravel 5.x » Ошибка при переносе на xampp » 06.05.2021 10:10:12

Ребят ну подскажите куда логи пишутся?
Как авторизацию отладить?

#10 Re: Laravel 5.x » Ошибка при переносе на xampp » 04.05.2021 12:50:11

Можно еще поинтересоваться.
Сайт открывается и просит ввести логин для входа.
После ввода сразу отдает ошибку 500.

В какую папку Laravel пишет логи? - /storage/logs/laravel.log?

у меня там даже файла нет laravel.log

#12 Laravel 5.x » Ошибка при переносе на xampp » 03.05.2021 10:30:40

Mick_20
Ответов: 4

Здравствуйте,

На работе прилетел проект на Laravel. Версия 5.8.38.
Раньше сложнее CMS и простых php функций ничего не использовал.

Сказали развернуть тестовый полигон на xampp, но у меня пока ничего не выходит.
Отдает ошибку 500.

Можете посоветовать в какую сторону копать?
В логах xampp следующая ошибка:


[Mon May 03 14:18:29.406544 2021] [php:error] [pid 8188:tid 1968] [client 127.0.0.1:54737] PHP Fatal error:  Uncaught ErrorException: Method ReflectionParameter::getClass() is deprecated in C:\\xampp\\htdocs\\sveden\\www\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php:853\nStack trace:\n#0 C:\\xampp\\htdocs\\sveden\\www\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php(853): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(8192, 'Method Reflecti...', 'C:\\\\xampp\\\\htdocs...', 853)\n#1 C:\\xampp\\htdocs\\sveden\\www\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php(816): Illuminate\\Container\\Container->resolveDependencies(Array)\n#2 C:\\xampp\\htdocs\\sveden\\www\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php(667): Illuminate\\Container\\Container->build('App\\\\Exceptions\\\\...')\n#3 C:\\xampp\\htdocs\\sveden\\www\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php(265): Illuminate\\Container\\Container->resolve('App\\\\Exceptions\\\\...', Array, false)\n#4 C:\\xampp\\htdocs\\sveden\\www\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php(785): Illuminate\\Container\\Container->Illuminate\\Container\\{closure}(Object(Illuminate\\Foundation\\Application), Array)\n#5 C:\\xampp\\htdocs\\sveden\\www\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php(667): Illuminate\\Container\\Container->build(Object(Closure))\n#6 C:\\xampp\\htdocs\\sveden\\www\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php(615): Illuminate\\Container\\Container->resolve('Illuminate\\\\Cont...', Array)\n#7 C:\\xampp\\htdocs\\sveden\\www\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php(767): Illuminate\\Container\\Container->make('Illuminate\\\\Cont...', Array)\n#8 C:\\xampp\\htdocs\\sveden\\www\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Bootstrap\\HandleExceptions.php(170): Illuminate\\Foundation\\Application->make('Illuminate\\\\Cont...')\n#9 C:\\xampp\\htdocs\\sveden\\www\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Bootstrap\\HandleExceptions.php(123): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->getExceptionHandler()\n#10 C:\\xampp\\htdocs\\sveden\\www\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Bootstrap\\HandleExceptions.php(100): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->renderHttpResponse(Object(ErrorException))\n#11 [internal function]: Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleException(Object(ErrorException))\n#12 {main}\n  thrown in C:\\xampp\\htdocs\\sveden\\www\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php on line 853
[Mon May 03 14:18:29.407544 2021] [php:error] [pid 8188:tid 1968] [client 127.0.0.1:54737] PHP Fatal error:  Uncaught ErrorException: Method ReflectionParameter::getClass() is deprecated in C:\\xampp\\htdocs\\sveden\\www\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php:853\nStack trace:\n#0 C:\\xampp\\htdocs\\sveden\\www\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php(853): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(8192, 'Method Reflecti...', 'C:\\\\xampp\\\\htdocs...', 853)\n#1 C:\\xampp\\htdocs\\sveden\\www\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php(816): Illuminate\\Container\\Container->resolveDependencies(Array)\n#2 C:\\xampp\\htdocs\\sveden\\www\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php(667): Illuminate\\Container\\Container->build('App\\\\Exceptions\\\\...')\n#3 C:\\xampp\\htdocs\\sveden\\www\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php(265): Illuminate\\Container\\Container->resolve('App\\\\Exceptions\\\\...', Array, false)\n#4 C:\\xampp\\htdocs\\sveden\\www\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php(785): Illuminate\\Container\\Container->Illuminate\\Container\\{closure}(Object(Illuminate\\Foundation\\Application), Array)\n#5 C:\\xampp\\htdocs\\sveden\\www\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php(667): Illuminate\\Container\\Container->build(Object(Closure))\n#6 C:\\xampp\\htdocs\\sveden\\www\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php(615): Illuminate\\Container\\Container->resolve('Illuminate\\\\Cont...', Array)\n#7 C:\\xampp\\htdocs\\sveden\\www\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php(767): Illuminate\\Container\\Container->make('Illuminate\\\\Cont...', Array)\n#8 C:\\xampp\\htdocs\\sveden\\www\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Bootstrap\\HandleExceptions.php(170): Illuminate\\Foundation\\Application->make('Illuminate\\\\Cont...')\n#9 C:\\xampp\\htdocs\\sveden\\www\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Bootstrap\\HandleExceptions.php(123): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->getExceptionHandler()\n#10 C:\\xampp\\htdocs\\sveden\\www\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Bootstrap\\HandleExceptions.php(100): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->renderHttpResponse(Object(ErrorException))\n#11 C:\\xampp\\htdocs\\sveden\\www\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Bootstrap\\HandleExceptions.php(134): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleException(Object(ErrorException))\n#12 [internal function]: Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleShutdown()\n#13 {main}\n  thrown in C:\\xampp\\htdocs\\sveden\\www\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php on line 853
127.0.0.1 - - [03/May/2021:14:18:29 +0700] "GET / HTTP/1.1" 500 -

#13 Re: Laravel 4 » Загрузка файлов (изображений). » 16.11.2016 09:41:41

Вот полное решение с загрузкой на сервер и записью в базу.

public function store(Article $postModel, ArticlesAddRequest $request) //валидация данных в файле app/Http/Requests/ArticlesAddRequest.php и сохранение данных формы
	{
		$artcl = $postModel->create($request->all());//записываем в базу

		$file = $request->file('image_file');
		$filename = $file->getClientOriginalName();
		$file->move('../images', $filename);//папка для загрузки изображения

		if($filename)
		{
			$article = Article::find($artcl->id);
                        $article->image = 'images/'.$filename;
                        $article->save();
		}

		return redirect()->route('articles');
	}

#14 Re: Laravel 5.x » Запись о изображении в БД » 16.11.2016 09:40:21

В общем разобрался. Сделал так:

public function store(Article $postModel, ArticlesAddRequest $request) //валидация данных в файле app/Http/Requests/ArticlesAddRequest.php и сохранение данных формы
	{
		$artcl = $postModel->create($request->all());//записываем в базу

		$file = $request->file('image_file');
		$filename = $file->getClientOriginalName();
		$file->move('../images', $filename);//папка для загрузки изображения

		if($filename)
		{
			$article = Article::find($artcl->id);
                        $article->image = 'images/'.$filename;
                        $article->save();
		}

		return redirect()->route('articles');
	}

#15 Re: Laravel 5.x » Запись о изображении в БД » 16.11.2016 09:28:05

Androbim пишет:

Только не спрашивайте больше, тут все ясно более чем. Даже, возможно, лучше сделаете.

У меня нет $id я не могу обратиться к модели.

Я пока делаю для формы создания статьи.

public function store(Article $postModel, ArticlesAddRequest $request) 
	{
		$postModel->create($request->all());

		$file = $request->file('image_file');
		$filename = $file->getClientOriginalName();
		$file->move('../images', $filename);

		return redirect()->route('articles');
	}

#16 Re: Laravel 4 » Загрузка файлов (изображений). » 16.11.2016 09:20:10

tmanager пишет:

Ребят, а почему не написать это на чистом php? И кода меньше, и универсальности больше.
Одна ведь функция всего: move_uploaded_file().

В общем, кому пример на чистом php?

Вот решение. Также не особо длинное:

Добавить в контролере в store()

$file = $request->file('image_file');
$filename = $file->getClientOriginalName();
$file->move('../images', $filename);

Добавить в форму в отображении:

{!! Form::label('image', 'Фотография:') . Form::file('image_file',['class' => 'form-control'])!!}

Как записать в базу данных пока не додумался.

#17 Re: Laravel 5.x » Ошибка MethodNotAllowedHttpException in RouteCollection.php line 219: » 16.11.2016 09:17:36

TrueKanonir пишет:

Да в update. У меня там дефолтный request, вы вместо него ставите свой реквест

Форма тогда не отправляется. Страница перезагружается, но не меняется.

#18 Laravel 5.x » Запись о изображении в БД » 15.11.2016 09:36:03

Mick_20
Ответов: 13

Здравствуйте,

Реализовал загрузку картинки на сервер.

public function store(Article $postModel, ArticlesAddRequest $request)
	{
		$postModel->create($request->all());

		$file = $request->file('image_file');
		$filename = $file->getClientOriginalName();
		$file->move('../images', $filename);//папка

		return redirect()->route('articles');
	}

Как сделать чтобы имя картинки также записывалось в БАЗУ?

#19 Re: Laravel 4 » Загрузка файлов (изображений). » 15.11.2016 09:12:32

dima9595 пишет:

Я имел ввиду пример, который написан на Laravel без сторонних библиотек)

я бы тоже не отказался от примера.
думаю как реализовать загрузку фотографий в статьи.

#20 Re: Laravel 5.x » Ошибка MethodNotAllowedHttpException in RouteCollection.php line 219: » 15.11.2016 08:56:15

TrueKanonir пишет:

Сделал у себя, на только что установленном фрейме. Все пашет.
Controller

Благодарю Вас. Редактирование заработало.


А в каком методе нужно дописать Request для валидации?
в update?

#21 Re: Laravel 5.x » Ошибка MethodNotAllowedHttpException in RouteCollection.php line 219: » 10.11.2016 10:21:44

TrueKanonir пишет:
Mick_20 пишет:

Я в общем переделал открытие формы вот так:

{!! Form::open(array('action' => array('ArticlesController@update', $article->id))) !!}

Теперь id статьи вроде передается: http://hostingkartinok.com/show-image.p … 972e173a97

Но ругается на роуты, если не ошибаюсь: http://hostingkartinok.com/show-image.p … f040a3ee51

Вы не указали метод patch
UPD: Он находит статью для редактирования, но при отправке формы вы не указываете id статьи. В контроллере сделайте dd($request->all()). Создайте input type hidden value="{{ $article->id }}" name id

Опять выдает: MethodNotAllowedHttpException in RouteCollection.php line 218:

#22 Re: Laravel 5.x » Ошибка MethodNotAllowedHttpException in RouteCollection.php line 219: » 10.11.2016 10:19:20

TrueKanonir пишет:
Mick_20 пишет:

А зачем обнулять инпуты? Я же открываю статью на редактирование?

Form model binding , значения подставляются. Попробуйте как я вам в примере показал сделать. Все сработает.

Не сработало: http://hostingkartinok.com/show-image.p … 84b1d9c8aa

#23 Re: Laravel 5.x » Ошибка MethodNotAllowedHttpException in RouteCollection.php line 219: » 10.11.2016 09:09:48

Я в общем переделал открытие формы вот так:

{!! Form::open(array('action' => array('ArticlesController@update', $article->id))) !!}

Теперь id статьи вроде передается: http://hostingkartinok.com/show-image.p … 972e173a97

Но ругается на роуты, если не ошибаюсь: http://hostingkartinok.com/show-image.p … f040a3ee51

#24 Re: Laravel 5.x » Ошибка MethodNotAllowedHttpException in RouteCollection.php line 219: » 10.11.2016 09:05:02

А зачем обнулять инпуты? Я же открываю статью на редактирование?

#25 Re: Laravel 5.x » Ошибка MethodNotAllowedHttpException in RouteCollection.php line 219: » 10.11.2016 06:57:47

TrueKanonir пишет:

}%Mick_20,
В %%Form::open%% добавьте %%'method' => 'patch'%% в итоге получится
%%(php)
{!! Form::open(['method' => 'patch', 'route' => 'articles.update']) !!}
%%
И отдельный роут для просмотра можно убрать, он в ресурсе уже есть


Отдельный роут пока не сделал. Надо разбираться.
А форма редактирования теперь другую ошибку пишет:
http://hostingkartinok.com/show-image.p … 9fa6caa1a8

Почему-то id не передается и как следствие не обновляется статья.

Контроллер:

	public function update(Request $request, $id) 
	{
		$article = Article::findOrFail($id);
        	$article->update($request->all());
        	$article->save();
        	return back()->with('message','Статья обновлена');
	}

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