2014-10-08 1 views
0


У меня проблема с лезвием. Я проверяю, зарегистрирован ли пользователь. Если я передаю два значения по умолчанию ввода из $ user ($ user-> UserName и $ user-> UserEmail), если я не передаю Input :: old().

Laravel - синтаксическая ошибка, неожиданная ';' в лезвии

Прежде чем я не буду проверять, работает ли пользователь, он работает нормально. Какие-либо предложения??

Вид:

@if($errors->has()) 
    <ul> 
     @foreach ($errors->all() as $error) 
      <li class="txt-danger">{{ $error }}</li> 
     @endforeach 
    </ul> 
@endif 

@if(Session::has('message')) 
    <ul> 
     <li class="txt-success">{{ Session::get('message') }}</li> 
    </ul> 
@endif 

{{ Form::open(array('url'=>'contact', 'name'=>'contactform', 'id'=>'contactform')) }} 
    <p> 
     @if(Auth::check()) 
      {{ Form::text('name', $user->UserName, array('id'=>'name') }} 
     @else 
      {{ Form::text('name', Input::old('name'), array('id'=>'name', 'placeholder'=>'Twoje imię')) }} 
     @endif 
    </p> 
    <p> 
     @if(Auth::check()) 
      {{ Form::text('email', $user->UserEmail, array('id'=>'email') }} 
     @else 
      {{ Form::text('email', Input::old('email'), array('id'=>'email', 'placeholder'=>'Twój e-mail')) }} 
     @endif 
    </p> 
    <p> 
     {{ Form::text('subject', Input::old('subject'), array('id'=>'subject', 'placeholder'=>'Temat')) }} 
    </p> 
    <p> 
     {{ Form::textarea('message', Input::old('message'), array('id'=>'message', 'placeholder'=>'Wiadomość', 'rows'=>'0')) }} 
    </p> 
    {{ Form::submit('Wyślij wiadomość', array('class'=>'mainBtn', 'id'=>'submit')) }} 
{{ Form::close() }} 
+0

Произошла ли ошибка в том, какая строка, по ее мнению, появляется ';'? –

+0

Я нашел это. Это моя глупая ошибка. На входе после if (Auth: check()) закрытие отсутствует ")". – Marcin

ответ

0

Похоже, что вы используете Input фасад внутри формы.

Входной фасад используется для получения значений, переданных формой после их отправки. Если вы хотите использовать старые значения, возвращаемые с контроллера обратно в форму, вам необходимо передать их в качестве параметров из контроллера. Что-то вроде:

return View::make('MyView')->with('old', $oldValues); 

Причина, по которой вы получаете сообщение об ошибке «синтаксическая ошибка, неожиданная»; в лезвии», потому что вы используете двойную фигурную скобку {{ }} при выводе Form::text() И вы используете Input фасад в нем, так, что PHP видите это что-то вроде:

echo "<input type='text' name='email'> valuefrominput;</input>"; 

В основном, Input::old() является написав точку с запятой в середине вашего кода Form::text().

+0

Я нашел это. Это моя глупая ошибка. На входе после if (Auth: check()) закрытие отсутствует ")". – Marcin

+0

А, я рад, что ты это нашел! –