2016-08-22 2 views
0

Итак, я работаю с двумя таблицами, кампанией и заданием.Таблица обновления Laravel с внешним ключом

class Campaign extends Model { 
    public function task() 
    { 
     return $this->hasMany('App\Task'); 
    } 
} 

и модель для задачи

class Task extends Model { 
    public function campaign() 
    { 
     return $this->belongsTo('App\Campaign'); 
    } 
} 

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

public function update(Request $request, $TaskID) 
    { 

     $campaign = Campaign::Find($TaskID); 
     $campaign-> campaign_name = $request->campaign_name; 
     $campaign -> company = $request->company; 

     $campaign->save(); 

     $stores= Task::where('campaign_id','=',$TaskID)->first(); 
     $store ->company = $request->input('company'); 
     $store->save(); 
    } 

Это ошибка я получаю и не могу понять, как я еще новичок на Laravel.

in TaskController.php line 214 
at HandleExceptions->handleError('2', 'Creating default object from empty value', 'F:\Projects\Dashboard\app\Http\Controllers\TaskController.php', '214', array('request' => object(Request), 'TaskID' => '5', 'campaign' => object(Campaign), 'stores' => object(Task), 'store' => object(stdClass))) in TaskController.php line 214 
at TaskController->update(object(Request), '5') 

пожалуйста, помогите определить мою проблему, чтобы он работал и обновить обе таблицы одновременно

+1

Какая строка находится в строке 214? –

ответ

0

Какая линия является линией 214?

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

Заменить

$stores= Task::where('campaign_id','=',$TaskID)->first(); 

с

$store = Task::where('campaign_id','=',$TaskID)->first(); 

ПРИМЕЧАНИЕ: Вы можете избежать задач, связанных с загрузкой явно с помощью отношений, которые вы определили. Чтобы получить все задачи для кампании, вы можете просто получить доступ к $ campaign-> task, чтобы получить все связанные с этим задачи.

+0

жаль, что это было глупо от меня. – MuseMe

+0

, хотя я все еще получаю эту ошибку после исправления – MuseMe

+0

SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец 'id' in 'where clause' (SQL: – MuseMe

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