2016-08-25 4 views
1

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

У меня есть это поле:

{{ Form::text('price', null, ['class' => 'form-control']) }} 

Если открыть форму с формой :: модели() он показывает значение модели. Проблема заключается в том, что мне нужно, чтобы иметь значение по умолчанию 0.

я достиг это так, но я ищу более элегантный способ

{{ Form::text('price', isset($product)? $product->price : 0, ['class' => 'form-control']) }} 

Если я сделать это:

{{ Form::text('price', 0, ['class' => 'form-control']) }} 

Он всегда переопределяет значение 0, даже если я редактирую модель.

+0

Если вы используете PHP 7, вы можете сделать '$ продукт-> цена ?? null' - но в остальном я не думаю, что есть более простое решение. –

ответ

0

вы можете изменить второй аргумент на $ product-> price || 0

или:

, кажется, у вас есть модель продукта с ценой ATTR, который обнуляемым. Хотя это напрямую не отвечает на ваш вопрос, но я предлагаю вам установить значение по умолчанию для каждого столбца, поэтому такие проблемы и многое другое не мешают. вы можете просто установить значение по умолчанию для столбца цен на ноль, или добавить слушателя событий для модели :: Создание, проверить нулевые значения и изменить их на 0.

1

Вы можете попробовать Laravel форма модели binding.Reference Link

Маршруты:

Route::get('/user/edit/{id}', [ 
      'as' => 'updateUser', 
      'uses' => '[email protected]' 
     ]); 

контроллер:

public function getUserEditFrom($id, UserRepository $userRepository) 
    { 
     return view('users.edit', [ 
      'user' => $userRepository->find($id) 
     ]); 
    } 

Посмотреть

{!! Form::model($user, ['url' => route('updateUser', ['id' => $user->id])]) !!} 
     <div class="form-group {{ $errors->first('name', 'has-error') }}"> 
       {!! Form::label('name', 'Name *') !!} 
       {!! Form::text('name', null, ['class' => 'form-control']) !!} 
       {!! $errors->first('name', '<span class="help-block">:message</span>') !!} 
      </div> 
      <div class="form-group {{ $errors->first('username', 'has-error') }}"> 
       {!! Form::label('username', 'Username *') !!} 
       {!! Form::text('username', null, ['class' => 'form-control']) !!} 
       {!! $errors->first('username', '<span class="help-block">:message</span>') !!} 
      </div> 
      <div class="form-group {{ $errors->first('email', 'has-error') }}"> 
       {!! Form::label('email', 'Email *') !!} 
       {!! Form::text('email', null, ['class' => 'form-control']) !!} 
       {!! $errors->first('email', '<span class="help-block">:message</span>') !!} 
      </div> 

    {!! Form::close() !!} 
0

Вы можете достичь, таким образом, также {{ Form::text('price', @$product->price ? :0, ['class' => 'form-control']) }}

Смежные вопросы