gpt4 book ai didi

PHP类系统: Change Image Attribute on Displayed Listing if Record is within User Favorites(pivot table)

转载 作者:行者123 更新时间:2023-11-30 00:45:47 26 4
gpt4 key购买 nike

我正在尝试开发一个“添加到收藏夹”系统,用户可以在其中“喜欢”一本书并将其添加到数据透视表中(user_id 和 book_id 转到表 book_user)。我目前设置了多对多关系,并从我的 books 表中循环遍历所有书籍的列表(如 View 中的 @foreach 循环所示)。

问题是如何更改显示的图像(在本例中为 div id ="heart-size"的 View 中),具体取决于用户是否已将该项目添加到他们的收藏夹中(书籍引用存在于book_user 表归因于该用户)?也就是说,如果该书在用户收藏夹中,则显示红心,如果没有,则将其保留为灰色并继续列出其余书籍。

表格

书籍

id |书名 |书籍作者 |图书网址

用户

id |用户 ID |密码

图书用户

id | user_id(来自用户的外键)| book_id(书籍的外键)

模型 Book.php

class Book extends Eloquent{

/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'books';

public function users() {
return $this->belongsToMany('User');
}}

Controller BooksController.php

class BooksController extends BaseController {

protected $layout = "layouts.main";

public function Booklist() {

$books = Book::all();
$this->layout->content = View::make('books.booklist', array('books' => $books));
}}

查看 booklist.blade.php

    <div class="booklist">
<table class="table table-striped table-condensed table-hover" width = "70">
<thead>
<tr>
<th></th>
<th>Book Name</th>
<th>Author Name</th>
<th>URL</th>
</tr>
</thead>
@foreach ($books as $book)
<tbody>
<tr>
<td>
<div id ="heart-size">
{{ HTML::link('book/like', '', array('id' => 'heart')) }}
</div>
</td>
<td> {{ $book->book_name }} </td>
<td>{{ $book->book_author}} </td>
<td><a href="{{ $book->book_url }}">{{ $book->book_url}} </a> </td>
</tr>
</tbody>
@endforeach
</table>
</div>

最佳答案

将以下内容添加到您的 Book 模型中:

public function hasLiked($userid) {
return in_array($userid, array_fetch($this->users->toArray(), 'id'));
}

并从您的 View 中调用它(示例):

@if $book->hasLiked($loggedinuserid) 
<div id ="heart-size">
{{ HTML::link('book/like', '', array('id' => 'heart')) }}
</div>
@endif

关于PHP类系统: Change Image Attribute on Displayed Listing if Record is within User Favorites(pivot table),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21366676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com