How to create session and set life time follow/unfollow in Laravel -
i trying function follow/unfollow in laravel. code working.
model:
public function followers() { return $this->belongstomany('app\user', 'followers', 'user_id', 'follower_id'); } public function follow(user $user) { $this->followers()->attach($user->id); } public function unfollow(user $user) { $this->followers()->detach($user->id); }
controller:
public function edit($id) { $user = user::find($id); auth::user()->follow($user); } public function delete($id) { $user = user::find($id); auth::user()->unfollow($user); }
html:
<button id="follow" class="btn"><i class="fa fa-user-plus"></i> follow</button>
ajax:
$(document).on('click', '#follow', function (e) { var followid = $('#follow'); $.ajax({ url: '{{ route("profile.edit", $user->id) }}', type: 'get', success: function () { followid.html('<i class="fa fa-user-times"></i>' + ' unfollow'); $('#follow').attr('id', 'unfollow'); } }); }); $(document).on('click', "#unfollow", function (e) { var unfollowid = $('#unfollow'); $.ajax({ url: '{{ route("profile.delete", $user->id) }}', type: 'get', success: function () { unfollowid.html('<i class="fa fa-user-plus"></i>' + ' follow'); $('#unfollow').attr('id', 'follow'); } }); });
now, want when reloading page or exit browser, code keeps in mind. session, , how set lifetime forever? vote helpful answers. all.
i assume using table named followers
purpose. have these scenarios:
- there no record
currentuser
vstargetuser
, means nofollow
norunfollow
- if there record exists, there must someflag(
followstatus
) in table set true, decidefollow
case - if
followstatus = false
,unfollow
case.
now on page load, within action method using display view, check above 3 cases, , put variable in session. e.g. 0
means no record exists
, 1
means followed
, 2
means unfollowed
.
session(['targetuserstatus' => '0']); // no record session(['targetuserstatus' => '1']); // followed session(['targetuserstatus' => '2']); // unfollowed
now within blade template check session variable:
@if(session::get('targetuserstatus') == "0") //set ui - no record case @else@if(session::get('targetuserstatus') == "1") //set ui - followed @else //set ui - unfollowed @endif
Comments
Post a Comment