laravel - 在 Laravel 的视图中使用 2 个控制器函数
问题描述
我想在我的视图中有两个循环,所以我写了这两个函数
public function index()
{
$books = Book::orderBy('created_at', 'desc')->take(10)->get();
return view('bookpage')->with('books', $books);
}
public function loggedin()
{
$books = Book::orderBy('RAND()')->take(1)->get();
return view('bookpage')->with('books', $books);
}
在view
我有
<!--First Loop -->
@foreach($books as $book)
<div class="col-md-6">
<div class="out-box">
<h2>{{ $book->name }}</h2>
<h3>{{ $book->author->name }}</h3>
<br>
<a href="#" class="start-btn">Start Reading</a><br><br>
<a href="#" class="buy-btn"><img src="assets/img/cart-buy.png" width="13px"/> Buy</a>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<input id="aboutbook" type="radio" name="tabs" checked>
<label for="aboutbook" class="aboutbook">About This Book</label>
<input id="bookreview" type="radio" name="tabs">
<label for="bookreview" class="bookreview">Reviews</label>
<hr style="background-color:black;">
<section style="padding-top:5px;" id="bookabout" >
<div class="row">
<div class="col-md-12">
<p>{{ $book -> about }}</p>
<h1>About the Author</h1>
</div>
</div>
<div class="row">
<div class="col-sm-4 col-md-3 col-6">
<img src="assets/img/Ellipse.png" class="rounded-circle" width="120px">
</div>
<div class="col-sm-4 col-md-4 col-6">
<h1>{{ $book->author->name }}</h1>
<h4>{{ $book->author->about }}</h4>
</div>
<div class="col-sm-4 col-md-5">
<div id="learnbtn">
<a href="#" class="learn-btn">Learn More</a>
</div>
</div>
</div>
</section>
<section style="padding-top:5px;" id="bookabout1" >
jjjjjjj
</section>
</div>
</div>
</div>
@endforeach
</section>
<!--Second Loop -->
@foreach($books as $book)
@if($book->recommended === 1)
<div class="col-1-5">
<div class="home-catalog-image">
<a href="{{ $book->image_url }}" target="_blank">
<!-- <img src="{{ $book->image }}" alt="trending image" /> -->
<img src="{{ $book->image_url }}" class="img-responsive" alt="{{ $book->image_url }}">
</a>
<!-- <img src="{{ asset('/books/'.$book->image) }}" alt="trending image" /> -->
</div>
<p class="author">{{ $book->author->name }}</p>
<h1 class="book-title">{{str_limit($book -> name, 20) }}</h1>
</div>
@endif
@endforeach
在我的 web.php Route::get('/', 'WelcomeController@index')->name('welcome');
我想在视图中调用另一个函数,虽然我知道方法不对,但我不知道该怎么做。
解决方案
您不必为登录用户创建两种不同的方法,只需使用
public function index()
{
if(auth()->user()) {
$books = Book::orderBy('RAND()')->take(1)->get();
} else $books = Book::orderBy('created_at', 'desc')->take(10)->get();
return view('bookpage')->with('books', $books);
}
在视图文件使用
@auth
//code for logged in user
@else
//code for guest user
@endauth
推荐阅读
- javascript - Galleria 视频未在移动设备中显示视频图标
- python-3.x - 卡尔曼滤波器基本应用/学习 - 代码似乎很慢
- scala - 使用 OR 逻辑进行模式匹配
- swift - 如何停止 QuartzCore-CABasicAnimation 的动画
- c# - discord.net c# :: user as IGuildUser 返回null?
- arduino - 404 Bad request error by using AT Commands to Send Post and Get Request Using Arduino Serial Monitor
- doxygen - 如何计算 doxygen 中的待办事项列表?
- node.js - Mongoose:访问模式中的自定义存储函数
- ios - iOS 文本意外显示两种不同的日文字体
- python - 在python中为数据框的回归分析创建一个循环