Laravel Попытка проложить путь так же, как это делает Reddit со своими subreddits. - PullRequest
0 голосов
/ 11 сентября 2018

Здравствуйте, пользователи 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...