У меня проблемы с получением информации о пользователе, используя его foreign_key из другой таблицы (PHP, LARAVEL, MYSQL) - PullRequest
0 голосов
/ 14 января 2020

Я пытаюсь следовать этому уроку на YouTube -> https://www.youtube.com/watch?v=ImtZ5yENzgE&t=9092s, но застрял в 2: 30: 57.

Вот подсказка:

Фасад \ Ignition \ Exceptions \ ViewException

Вызов неопределенного метода App \ Post :: ownTo () (Просмотр: C: \ xampp \ htdocs \ Laravel \ test3 \ resources \ views \ posts \ show.blade. php)

http://localhost: 8000 / p / 5

И это файлы, которые, я думаю, связаны с ошибкой.

1.) Show.blade. php

@extends('layouts.app')

@section('content')
<div class="container">
	<div class="row">
		<div class="col-8">
			<img src="/storage/{{ $post->image }}" class="w-100">
		</div>
		<div class="col-4">
			<div>
				<h3>
					{{ $post->user->username }} <!-- Here, I can't get the USERNAME of the owner of the 'post'. -->


					</h3>
			</div>
		</div>
	</div>
</div>
@endsection('content')

2.) PostController. php

<?php

namespace App\Http\Controllers;


use Illuminate\Http\Request;
use Intervention\Image\Facades\Image;

class PostController extends Controller
{
	public function __construct()
	{
		$this->middleware('auth');
	}

	public function create()
	{
		return view('posts/create');
	}

	public function store()
	{

		$data = request()->validate([
			'caption' => 'required',
			'image' => 'required|image', //you can either use this = ['required', 'image']
		]);

			$image_path = request('image')->store('uploads', 'public');

			$image = Image::make(public_path("storage/$image_path"))->fit(1200, 1200);
			$image->save();


			auth()->user()->posts()->create([
				'caption' => $data['caption'],
				'image' => $image_path,
			]);


			return redirect('/profile/' . auth()->user()->id);
	}

	public function show(\App\Post $post)
	{
		return view('posts/show', compact('post'));
	}
}

3.) Почта. php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
	protected $guarded = [];
    public function user()
    {
    	return $this->belongTo(User::class);
    }
}

Я новичок в laravel, поэтому, возможно, я сделал что-то, чего не понимаю, и не смог обнаружить, в чем проблема. Надеюсь, я смогу понять это. Спасибо!

1 Ответ

0 голосов
/ 14 января 2020

Я спросил сэра Виктора, который создал Учебник YouTube. Своим быстрым ответом он указал, в чем заключается моя проблема.

Это была просто быстрая опечатка в вызове метода. Это должно принадлежать To (), вы просто забыли s.

Я просто оставлю это здесь, чтобы напомнить некоторым, которые проверяют свой код на наличие ошибок опечаток:)

Кроме того, некоторые инструкции все еще приветствуются. :) Спасибо за чтение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...