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
currentuservstargetuser, means nofollownorunfollow - if there record exists, there must someflag(
followstatus) in table set true, decidefollowcase - if
followstatus = false,unfollowcase.
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