如何使用Laravel

时间:2018-04-26 14:45:21

标签: laravel laravel-5 laravel-5.5 favorites

我正在处理添加到收藏夹并在我的网站上查看收藏列表功能。 我设法创建了2个表

  

包含ID,姓名,姓名,照片,类型和电子邮件的用户表

     

包含id,user_id,favoriteable_id,created_at和updated_at

的收藏夹表

我试图以这样的方式实现它:当连接到他的帐户的用户点击添加到收藏夹按钮时,它将添加在他的收藏夹列表中选择的用户。

我试过这样做,但它没有完全奏效并且在这个过程中感到困惑。

这是我的网络路线

Route::post('favorite/{user}', 'FavoriteController@favoriteUser')->name('jobber.fav.store');
Route::post('unfavorite/{user}', 'Favorite@unFavoriteUser');
Route::get('my_favorites', 'UsersController@myFavorites')->middleware('auth');

这是我最喜欢的控制器

   /**
 * Favorite a particular jobber
 *
 * @param  User $user
 * @return Response
 */
public function favoriteUser(User $user)
{
    Auth::user()->favorites()->attach($user->id);

    return back();
}

/**
 * Unfavorite a particular post
 *
 * @param  User $user
 * @return Response
 */
public function unFavoriteUser(User $user)
{
    Auth::user()->favorites()->detach($user->id);

    return back();
}

这是我的用户控制器

 /**
 * Get all favorite posts by user
 *
 * @return Response
 */
public function myFavorites()
{
    $myFavorites = Auth::user()->favorites;

    return view('users.my_favorites', compact('myFavorites'));
}

添加到收藏夹列表的路线

<div class="col-lg-4">
    <a class="apply-thisjob" href="#" title=""><i class="la la-paper-plane"></i>Recherchez d'autres jobbeurs</a>

<a class="add-tofavorite" href=" {{ route('jobber.fav.store', ['id'=>$result->id]) }}" title=""><i class="la la-heart-o"></i>Add to my favorites</a>

                                </div>

这是my_favorites.blade.php

<div class="row">
    <div class="col-md-8 col-md-offset-2">
        <div class="page-header">
            <h3>My Favorites</h3>
        </div>
        @forelse ($myFavorites as $myFavorite)
            <div class="panel panel-default">
                <div class="panel-heading">
                    {{ $myFavorite->name}}
                </div>

                <div class="panel-body">
                    {{ $myFavorite->photo}}
                </div>

            </div>
        @empty
            <p>You have no favorite posts.</p>
        @endforelse
     </div>

在我的用户模型中我添加了这个

public function favorites()
{
    return $this->belongsToMany(Favorite::class, 'favorites', 'user_id', 'favoriteable_id')->withTimeStamps();
}

这是我最喜欢的模特

 public function user() 
{
return $this->belongsTo('App\User');
}

任何人都可以帮助我吗?或者有关如何使其发挥作用的任何建议......提前谢谢。

0 个答案:

没有答案