2015-01-24 3 views
2

Условия таблице:Laravel Форма модели Связывание один к одному отношения не Населенные

  • term_id
  • имя
  • пробкового

Term_taxonomy стол:

  • term_taxonomy_id
  • term_id
  • описание

Моя Term Модель:

public function TermTaxonomy(){ 
    return $this->hasOne('TermTaxonomy'); 
} 

Моя TermTaxonomy модель:

public function Term(){ 
    return $this->belongsTo('Term'); 
} 

мой контроллер

My View

 @if (isset($category)) 
     {{ Form::model($category, ['route' => ['admin_posts_categories_update', $category->term_id], 'method' => 'PATCH']) }} 
    @else 
     {{ Form::open(['route' => 'admin_posts_categories_store'])}} 
    @endif 

     {{ Form::label('name', 'Name') }} 
     <span data-tooltip aria-haspopup="true" class="has-tip radius" title="Category name for your posts."> 
     {{ Form::text('name', '', ['placeholder' => 'Category name here']) }} 
     @if ($errors->has('name')) <small class="error"> {{ $errors->first('name') }} </small> @endif 
     </span> 

     {{ Form::label('slug', 'Slug') }} 
     <span data-tooltip aria-haspopup="true" class="has-tip radius" title="Slug or URL for your category."> 
     {{ Form::text('slug', '', ['placeholder' => 'Slug here']) }} 
     @if ($errors->has('slug')) <small class="error"> {{ $errors->first('slug') }} </small> @endif 
     </span> 

     {{ Form::label('description', 'Description') }} 
     {{ Form::textarea('description', '', ['placeholder' => 'Category description here', 'size' => '50x5']) }} 

    @if (!isset($category))   
     {{ Form::submit('Add New Category', ['class' => 'radius button']) }} 
    @else 
     {{ Form::submit('Update', ['class' => 'radius button']) }} 
    @endif 

    {{ Form::close() }} 

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

Спасибо, я новичок в laravel. любая помощь будет воспринята.

+0

Попробуйте передать «null» вместо пустой строки как значение: '{{Form :: text ('name', null, [...])}}' – lukasgeiter

+0

приятно снова встретиться с вами @lukasgeiter теперь имя и slug input text заполнен, но описание все еще пустое, потому что оно в отношениях один к одному и другая таблица. уже много попробовать, но не работает. то как заполнить описание?. большое спасибо. –

ответ

4

Во-первых, второй параметр должен быть null так будет использовать значение из модели:

{{ Form::text('name', null, ['placeholder' => 'Category name here']) }} 

Чтобы использовать свойство из соответствующей модели вы можете использовать это:

{{ Form::textarea('TermTaxonomy[description]', null, ['placeholder' => 'Category description here', 'size' => '50x5']) }} 

Примечание, что нет необходимости делать @if(isset($category)) в начале. Метод Form::model будет обрабатывать несуществующие модели самостоятельно. Этого вполне достаточно:

{{ Form::model($category, ['route' => ['admin_posts_categories_update', $category->term_id], 'method' => 'PATCH']) }} 
+0

Да, это работает, чтобы показать описание, но когда я пытаюсь добавить новую категорию, iget undefined index: description и укажу на эту строку '$ TermTaxonomy-> description = $ data ['description'];' then i change to $ $ TermTaxonomy- > description = $ data ['TermTaxonomy'] ['description']; 'и его работа, это правильный путь? после того, как я удалю 'isset()' он правильно отобразит форму и кнопку обновления и правильно сохранит кнопку, как это можно сделать? потому что я удаляю 'isset()', как я знаю, чтобы обнаружить обновление или добавить новое, которое нам нужно использовать, если, если редактировать, тогда отобразить форму редактирования и кнопку обновления еще добавить новую форму и добавить новую кнопку @lukasgeiter –

+0

Да, доступ к ней, как вы описали верно. Также вам понадобится isset() для кнопки отправки – lukasgeiter

+0

. Я не использую isset() в кнопке отправки, но она работает, как и ожидалось, не знает почему. @lukasgeiter –

0

Я тоже была такая же проблема, но я сделал это так:

{!! Form::text('firstname', $user->profile->firstname, ['class' => 'form-control']) !!} 

В моем случае: пользователя belongsTo('App\Profile'), Профиль hasOne('App\profile')

Просто получаю идея. Надеюсь, поможет!

1

В моем случае не отображалось значение модели на Textarea.

Таким образом, вместо нулевого я дать значение, как это:

{{ Form::textarea('TermTaxonomy[description]', $category->TermTaxonomy['description'], ['placeholder' => 'Category description here', 'size' => '50x5']) }} 

Надеется, что это также помогает кому-то.

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