Laravel по-русски

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

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

#1 01.04.2016 00:23:32

Запрос в базу timestamp

День добрый

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

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

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

тип поля timestamp

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

Изменено Partizan (01.04.2016 00:25:29)

Не в сети

#2 01.04.2016 08:53:02

Re: Запрос в базу timestamp

-- затупил,  условие же )

Изменено VitalN (01.04.2016 08:56:03)

Не в сети

#3 01.04.2016 08:56:53

Re: Запрос в базу timestamp

А что за кавычки?
(‘date’,

Не в сети

#4 01.04.2016 09:28:55

Re: Запрос в базу timestamp

с терминала как-то скопировало криво.
$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;

--

Изменено Partizan (01.04.2016 09:32:38)

Не в сети

#5 01.04.2016 11:39:32

Re: Запрос в базу timestamp

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

Не в сети

#6 01.04.2016 16:03:53

Re: Запрос в базу timestamp

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

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

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

Не в сети

#7 01.04.2016 16:15:08

Re: Запрос в базу timestamp

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

Не в сети

#8 01.04.2016 16:16:50

Re: Запрос в базу timestamp

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

Не в сети

#9 01.04.2016 16:19:41

Re: Запрос в базу timestamp

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

Не в сети

#10 01.04.2016 16:25:46

Re: Запрос в базу timestamp

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

Изменено Partizan (01.04.2016 16:26:14)

Не в сети

#11 01.04.2016 16:27:07

Re: Запрос в базу timestamp

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

Не в сети

#12 01.04.2016 16:29:59

Re: Запрос в базу timestamp

VitalN пишет:

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

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

Не в сети

#13 01.04.2016 16:32:28

Re: Запрос в базу timestamp

Ларавел  для работы  с датами использует пакет Carbon

Не в сети

#14 01.04.2016 16:40:47

Re: Запрос в базу timestamp

VitalN пишет:

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

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

Не в сети

#15 01.04.2016 16:43:02

Re: Запрос в базу timestamp

вью покажи тоже )
как клещами чесслово )

Не в сети

#16 01.04.2016 16:47:26

Re: Запрос в базу timestamp

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

Не в сети

#17 01.04.2016 16:58:06

Re: Запрос в базу timestamp

ругается то  на эту строку наверное?
  {{$articles->appends(['port' => $article->port , 'ipswitch' => $article->ipswitch, 'date1' => $date1, 'date2' => $date2])->render()}}

если пусто - по циклу не прошли  $article нет

Изменено VitalN (01.04.2016 16:58:16)

Не в сети

#18 01.04.2016 17:00:45

Re: Запрос в базу timestamp

вроде как на неё и что делать?

Не в сети

#19 01.04.2016 17:03:18

Re: Запрос в базу timestamp

return view('showlogp',compact('articles','date1','date2', 'port','ipswitch'));

---

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

Не в сети

#20 01.04.2016 17:20:46

Re: Запрос в базу timestamp

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

Не в сети

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