Laravel по-русски

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

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

#1 Re: Laravel 5.x » Запрос в базу timestamp » 01.04.2016 17:20:46

ErrorException in Builder.php line 2177: Call to undefined method Illuminate\Database\Query\Builder::appends() (View: /home/log/resources/views/showlogp.blade.php)
sad

#3 Re: Laravel 5.x » Запрос в базу timestamp » 01.04.2016 16:47:26

public function selectlogp(Request $request){

<------> $this->validate($request, [
<------>    'port' => 'required|digits_between:1,2',
<------>    'ipswitch' => 'required|ip',
<------>    'date1' => 'required',
<------>      ]);

<------>$port = $request->input('port');
<------>$ipswitch = trim($request->input('ipswitch'));
<------>$gmac = $request->input('gmac');

<------>$date1 = $request->input('date1');
<------>$date1 = strtotime( $date1);
<------>$date1 = date ('Y-m-d',  $date1);

<------>$date2 = $request->input('date2');
<------>$date2 = strtotime($date2);
<------>$date2 = date ('Y-m-d',  $date2);

        $articles=Logmac::where('port','=',$port)->where('ipswitch','=',$ipswitch)->whereBetween('date',array($date1,$date2));

<------>if ($articles)
<------>    {
<------><------>$articles->paginate(25);
<------>    }

        return view('showlogp',['articles'=>$articles,'date1'=>$date1,'date2'=>$date2]);

    }

@extends('layouts.app')

@section('content')

<div class="container">
     <table class="table">
     @foreach($articles as $article)
    <tr>
        <td>{{$article->mac}}</td>
        <td>{{$article->port}}</td>
        <td>{{$article->ipswitch}}</td>
<------><td>{{$article->name_switch}}</td>
<------><td>{{$article->date}}</td>
    </tr>
     @endforeach
     </table>

    {{$articles->appends(['port' => $article->port , 'ipswitch' => $article->ipswitch, 'date1' => $date1, 'date2' => $date2])->render()}}

    @can('create') <!-- проверяем права -->
         <a href="/create">Добавить статью</a>
    @endcan
</div>

@endsection

#4 Re: Laravel 5.x » Запрос в базу timestamp » 01.04.2016 16:40:47

VitalN пишет:

Вообще он не должен падать, что за ошибка то покажи ексепшен

ErrorException in f4e080267348e423ccbe9a350c5851e1b2c9cd9c.php line 23: Undefined variable: article (View: /home/log/resources/views/showlogp.blade.php)

#5 Re: Laravel 5.x » Запрос в базу timestamp » 01.04.2016 16:29:59

VitalN пишет:

По датам расскажу свой лайфкак:
Уже много лет храню даты в int
Очень удобно! условия элементарно добавляются
вывод тоже, через date()

возможно, но я морду для базы пишу. 
Вот решил Ларавел попробовать для этих целей.
В теории можно переписать скрипт вноса данных в базу, просто как то логично было что дата автоматом будет вставляться.

#6 Re: Laravel 5.x » Запрос в базу timestamp » 01.04.2016 16:25:46

Не катит.
если пагенатор не указывать то на конце должно стоять ->get() иначе ошибка
если указать get то на пагинатор ругается
BadMethodCallException in Macroable.php line 81: Method paginate does not exist.

#7 Re: Laravel 5.x » Запрос в базу timestamp » 01.04.2016 16:15:08

проблема с paginate - без неё работает.
мда что посоветуете?

#8 Re: Laravel 5.x » Запрос в базу timestamp » 01.04.2016 16:03:53

Теперь ещё проблема smile
$articles=Logmac::where('port','=',$port)->where('ipswitch','=',$ipswitch)->whereBetween('date',array($date1,$date2))->paginate(25);

в случае пустого результата поиска в ошибку падает.
хотя опять если без даты выводит как положено пустую страницу.

как обработать исключения или что не так?

#9 Re: Laravel 5.x » Запрос в базу timestamp » 01.04.2016 11:39:32

блин что за прикол был так и не понял.
вроде как заработало
но пришлось так дату форматировать
$date1 = $request->input('date1'); 01.04.2016
$date1 = strtotime( $date1);
$date1 = date ('Y-m-d',  $date1); в 2016-04-01

#10 Re: Laravel 5.x » Запрос в базу timestamp » 01.04.2016 09:28:55

с терминала как-то скопировало криво.
$articles=Logmac::where('port', '=', $port )->where('ipswitch', '=', $ipswitch )->where('date',' >', $date1 )->paginate(25);
полный запрос
без даты работает


- Структура таблицы `maclog`
--

CREATE TABLE IF NOT EXISTS `maclog` (
`id` int(100) NOT NULL,
  `mac` varchar(100) NOT NULL,
  `port` smallint(3) NOT NULL,
  `ipswitch` varchar(150) NOT NULL,
  `name_switch` varchar(100) NOT NULL,
  `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=Aria AUTO_INCREMENT=33935 DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0 TRANSACTIONAL=0;

--

#11 Laravel 5.x » Запрос в базу timestamp » 01.04.2016 00:23:32

Partizan
Ответов: 19

День добрый

Помогите новичку

Как передать дату в запрос.

$date1 = strtotime( $date1); переменная равна в timestamp '1459209600'
->where(‘date’,’ >’, $date1 )

тип поля timestamp

Всё работает, а вот дата вызывает ошибку.

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