Здравствуйте, пользователи Stackoverflow,
В настоящее время я работаю над хобби-проектом (клон Reddit) с использованием Laravel.То, чего я пытаюсь добиться, - это использовать ту же маршрутизацию к сообщениям, что и Reddit.В моем случае я хочу перейти на страницу, используя текущее имя subreddit и идентификатор сообщения (b / subreddit-name / postId), чтобы определить, куда должен быть направлен веб-сайт.Я сделал так, чтобы запросить идентификатор сообщения, но мне не удалось сделать это с текущим subreddit-именем, на которое нажимает пользователь (Subbie).
Кстати: Subbie - это имя, котороеЯ использую вместо термина «subreddit», у каждого сообщения есть столбец, сохраненный в базе данных с именем subbie, а также идентификатор сообщения, поэтому он должен быть все извлекаемым.
Какможно ли сделать так, чтобы Laravel распознал переменную "{subbie}" ?
(возможно, я использую неправильные слова для описания своей проблемы, но надеюсь, что все это имеет смысл.)
Вот код, который я использую:
Маршрутизатор: web.php:
<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', 'IndexController@index');
Route::get('/b/{subbie}/{id}', 'IndexController@post');
Контроллер: IndexController.php:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Index;
class IndexController extends Controller
{
public function index() {
$posts = Index::all();
return view('index', ['posts' => $posts]);
}
public function post($id) {
$posts = Index::findOrFail($id);
return view('post', ['posts' => $posts]);
}
}
Модель: Index.php:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Index extends Model
{
protected $table = 'posts';
protected $primaryKey = 'id';
}
Вид: index.blade.php:
@extends('layouts.app')
@section('content')
<div class="container mt-5">
<div class="col-12">
@if(count($posts) > 0)
<ul class="list-group">
@foreach ($posts as $post)
<a href="{!! url()->current() !!}/b/{{ $post->subbie }}/{{ $post->id }}">
<li class="list-group-item" style="text-decoration: none;">b/{{ $post->subbie }} · Posted by u/Test</li>
<li class="list-group-item" style="text-decoration: none;"><h5 class="h5">Tekst: {{ $post->body }}</h5></li>
</a>
@endforeach
</ul>
@else
<h1>Helaas zijn er nog geen artikels beschikbaar</h1>
@endif
</div>
</div>
@endsection
Просмотр 2: post.blade.php:
@extends('layouts.app')
@section('content')
<ul class="list-group">
<li class="list-group-item">ID: {{ $posts->id}}</li>
</ul>
@endsection