Laravel по-русски

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

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

#1 13.05.2019 21:34:32

Как решить "ErrorException in VarCloner.php line 298"?

Доброго времени всем!

Использую версию 5.2

При попытке вывести любую из переменных ( $pages, $portfolios, $services, $peoples , $menu ) через helper 'dd' появляется "ErrorException in VarCloner.php line 298: A non well formed numeric value encountered"

Предполагаю, что это как -то связано со временем. Поля 'created_at' и 'updated_at' созданы с типом 'timestamp', по умолчанию Null и заполнены вставленными датами.

Index.Controller

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Page;
use App\Service;
use App\Portfolio;
use App\People;


class IndexController extends Controller
{
    //
    
    public function execute(Request $request) {
    	
    	$pages = Page::all();
    	$portfolios = Portfolio::get(array('name','filter','images'));
    	$services = Service::where('id','<',20)->get();
    	$peoples = People::take(3)->get();
    	
    /*	$menu = array();
    	foreach($pages as $page) {
			$item = array('title' =>$page->name,'alias'=>$page->alias);
			array_push($menu,$item);
		}*/
		dd($pages);

		return view('layouts.site');
		//return view('site.index');
	}
    
}

Миграция table_pages

<?php

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

class CreateTablePages extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('pages', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name',100);
            $table->string('alias',100);
            
            $table->text('text');
            
            $table->string('images',100);
            
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('pages');
    }
}

Изменено SilverSky (13.05.2019 21:35:27)

Не в сети

#2 13.05.2019 22:28:55

Re: Как решить "ErrorException in VarCloner.php line 298"?

Но проблема решилась переключением версий php c 7.1 * 64 на 7.0 64. МуSQL остался тот же 5.5.64

С чем связаны эти изменения?

Цитата из оф документации  ист. https://php.net/manual/ru/migration71.other-changes.php
Новые ошибки уровней E_WARNING и E_NOTICE были добавлены при использовании некорректных строк с операторами, ожидающими числа (+ - * / ** % << >> | & ^) и их эквивалентами с присваиванием. Ошибка уровня E_NOTICE выдается, когда строка начинается с цифр, но далее содержит не цифровые символы, и ошибка уровня E_WARNING выдается тогда, когда строка вообще не содержит цифр.

Как решить эту ошибку используя php 7.1 ?

Изменено SilverSky (13.05.2019 22:29:51)

Не в сети

#3 01.06.2019 21:43:30

Re: Как решить "ErrorException in VarCloner.php line 298"?

Как решить эту ошибку используя php 7.1 ?

Разобраться, почему в переменной не тот формат данных, который нужен. Скорее всего там, как и написано, не число, а временное представление типа "2019-06-01T...". Можно попробовать их посмотреть через отладчик, а не через dd(), или через var_dump(). Еще можно отключить error_reporting() для E_WARNING и/или E_NOTICE, но это очень плохой путь - разве что для отладки.

Не в сети

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