2015-05-24 3 views
2

Я использую Laravel 5 на своей локальной машине. Я использую findOrNew, и я хочу перенаправить пользователя по-разному в зависимости от того, что произошло. Это мой код до сих порLaravel findOrNew - Как перенаправить в зависимости от того, что произошло

$contact = Contact::findOrNew($id); 
$contact->user_id = Auth::user()->id; 
$contact->first_name = Request::get('first_name'); 
$contact->save(); 

return redirect('path/here')->with('message', 'my_message_here'); 

Как вы можете видеть, если новый контакт был добавлен или если контакт был изменен, я делаю то же редирект. Но что, если я хочу перенаправить пользователя, если новая строка была создана? То же самое, если контакт был изменен, я хочу, чтобы пользователь перенаправлялся на другую страницу. Спасибо!

ответ

2

Наконец-то я нашел способ сделать это. Я думаю, что мой код не нуждается в каких-либо объяснениях, так легко понять!

$contact = Contact::findOrNew($id); 

// get the id if contact exists. If he doesn't, $latest_id will be NULL. 
$latest_id = $contact->id; 

$contact->user_id = Auth::user()->id; 
$contact->first_name = Request::get('first_name'); 
$contact->save(); 

// check if id is the same as the contact above 
if($latest_id == $contact->id) { 
    return redirect('different/path')->with('message', 'another message'); 
} 
return redirect('path/here')->with('message', 'my_message_here'); 
+1

Вам лучше использовать свойство '$ contact-> exists' –

1

Я столкнулся с этой проблемой и использовал laravel 5.1. Я подумал об этом несколько минут, прежде чем обнаружил атрибут boolean exists. Когда найденная модель существует === true else существует === false. Это работает последовательно, даже если ваши таблицы имеют первичные ключи, не названные 'id'.

1

Просто это может сделать. $ id - предыдущий идентификатор контакта и $ contact-> id - последний идентификатор

if($id == $contact->id) { // if $id==$contact->id then data updated else data inserted 
    return redirect('path1')->with('message', 'Update Message'); 
} 
return redirect('path2')->with('message', 'Insert Message'); 
Смежные вопросы