私は管理者がCRUD投稿を行うことができる管理ダッシュボードを含むアプリケーションを作成しようとしていますが、ユーザーが投稿した投稿を見ることもできます。 一方、ゲストは投稿を見ることができますが、ユーザーは投稿投稿を作成することができます。ユーザーが投稿したLaravelを使用した投稿
これまで、私は投稿機能機能を有効にすることができましたが、ユーザー投稿機能は利用できません。
マイコントローラー:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Usp;
class AdminUserPostsController extends Controller
{
public function index()
{
$userposts = Usp::orderBy('id', 'desc')->paginate(10);
return view('admin.userposts.archive')->withUsp($userposts);
}
public function show($id)
{
$userpost = Usp::find($id);
return view('admin.userposts.show')->withUsp($userpost);
}
}
マイモデル
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Usp extends Model
{
//
}
私のアーカイブを表示
@extends('admin')
@section('dashboard-content')
<div class="col-md-8 offset-md-2">
<h1>Posts Archive</h1>
<hr>
</div>
@foreach ($userposts as $userpost)
<div class="col-md-6 offset-md-2">
<h3>Title: {{ $userpost->title }}</h3>
<hr>
</div>
@endforeach
@endsection
と(特定のコントローラ用)マイルート
Route::get('/admin/userposts', '[email protected]')->name('admin.userposts.archive');
Route::get('/admin/userposts/{id}', '[email protected]')->name('admin.userposts.show');
userposts変数が定義されていないというエラーが表示されますが、コントローラで定義しています。助けることができる人は誰ですか?あなたがuserposts
変数を使用したい場合は
とまったく同じものですので、多くのすべてのあなたのありがとう!また、説明に感謝します。私の店舗機能はどうですか?私はこのコードでリダイレクトする必要があります。 'return redirect() - > route( 'admin.userposts.show'、$ userpost-> id);'私は 'return redirect() - > route( 'admin。 ( 'userposts.show'、compact( 'userpost'、 'id')); 'しかし、それは動作しません:( –
ルート機能はまったく同じように動作しません。あなたが '$ userpost-> id'で行ったのと同じように、あるいは完全なオブジェクトのために行くことができ、フレームワークはどの値を取るかを決定します(デフォルトではidです)。列を変更すると、[暗黙的なバインディング](https://laravel.com/docs/5.4/routing#implicit-binding)列を変更できます。複数のパラメータを持つ場合は、配列を渡す必要があります。 –
さらに、 'compact( 'userpost'、 'id')'を説明するだけで、実際には '$ userpost'と' $ id'の2つの変数があります。あなたはそれらを持っていた両方とも定義されていれば '['userpost' => $ userpost、 'id' => $ id]' –