count_twittersが未定義というエラー
解決済
回答 1
投稿
- 評価
- クリップ 0
- VIEW 538
Undefined variable: count_twitters (View: /home/ec2-user/environment/twitter-clone/resources/views/users/show.blade.php)
上記のエラーが出たのですが、自分では原因が見つけれていないので質問させて頂きます。
Twitterのクローンサイトを作りたくて、まずは教科書から真似てコードを書いています。
お手数おかけしますが、ご教示お願いします。
show.blade.php
@extends('layouts.app')
@section('content')
<div class="row">
<aside class="col-xs-4">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">{{ $user->name }}</h3>
</div>
<div class="panel-body">
<img class="media-object img-rounded img-responsive" src="{{ Gravatar::src($user->email, 500) }}" alt="">
</div>
</div>
@include('user_follow.follow_button', ['user' => $user])
</aside>
<div class="col-xs-8">
<ul class="nav nav-tabs nav-justified">
<li role="presentation" class="{{ Request::is('users/' . $user->id) ? 'active' : '' }}"><a href="{{ route('users.show', ['id' => $user->id]) }}">TimeLine <span class="badge">{{ $count_twitters }}</span></a></li>
<li role="presentation" class="{{ Request::is('users/*/followings') ? 'active' : '' }}"><a href="{{ route('users.followings', ['id' => $user->id]) }}">Followings <span class="badge">{{ $count_followings }}</span></a></li>
<li role="presentation" class="{{ Request::is('users/*/followers') ? 'active' : '' }}"><a href="{{ route('users.followers', ['id' => $user->id]) }}">Followers <span class="badge">{{ $count_followers }}</span></a></li>
</ul>
@if (Auth::id() == $user->id)
{!! Form::open(['route' => 'twitters.store']) !!}
<div class="form-group">
{!! Form::textarea('content', old('content'), ['class' => 'form-control', 'rows' => '2']) !!}
{!! Form::submit('Post', ['class' => 'btn btn-primary btn-block']) !!}
</div>
{!! Form::close() !!}
@endif
@if (count($twitters) > 0)
@include('twitters.twitters', ['twitters' => $twitters])
@endif
</div>
</div>
@endsection
Controller.php
<?php
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use App\User;
use App\Twitter;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
public function counts($user) {
$count_twitters = $user->twitters()->count();
$count_followings = $user->followings()->count();
$count_followers = $user->followers()->count();
return [
'count_twitters' => $count_twitters,
'count_followings' => $count_followings,
'count_followers' => $count_followers,
];
}
}
UsersController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\User;
use App\Twitter;
class UsersController extends Controller
{
public function index()
{
$users = User::paginate(10);
return view('users.index', [
'users' => $users,
]);
}
public function show($id)
{
$user = User::find($id);
$twitters = $user->twitters()->orderBy('created_at', 'desc')->paginate(10);
$data = [
'user' => $user,
'twitters' => $twitters,
];
$data += $this->counts($user);
return view('users.show', $data);
}
public function followings($id)
{
$user = User::find($id);
return view('users.show', [
'user' => $user,
]);
}
public function followers($id)
{
$user = User::find($id);
$followers = $user->followers()->paginate(10);
$data = [
'user' => $user,
'users' => $followers,
];
$data += $this->counts($user);
return view('users.followers', $data);
}
}
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
+1
public function followings($id)
{
$user = User::find($id);
return view('users.show', [
'user' => $user,
]);
}
ここでもshow.blade.php使ってそうですが、あってますか?
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.37%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2018/11/12 13:06
ありがとうございました。