Laravel по-русски
Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
matros97 пишет:но мне надо сделать так, что бы отображалась работа и была написана её категория работы 15
$work = Work::with('category')->get();И надо будит добавить внешний и локальные ключи в связь.
<?php namespace App; use Illuminate\Database\Eloquent\Model; class Work extends Model { public function category() { return $this->belongsTo(Category::class, 'Локальный ключ к примеру category_id', 'id'); } }И тогда вы сможете отобразить все работы и их категории.
@foreach ($work as $w) <p>{{ $w->name }}</p> <hr> {{ $w->category->name }} @endforeach
Огромное вам спасибо, все работает думал, что и не получиться, а вы не скажите вчем была ошибка моя
но мне надо сделать так, что бы отображалась работа и была написана её категория работы 15
сделал тоже самое ((
Интересно, то что в виде если так вывисти, но все работает
@foreach ($category as $c)
<p>{{ $c['name'] }}</p>
@foreach ($c->work as $item)
<p>{{ $item['title'] }}</p>
@endforeach
@endforeachИсправил, но все равно ошибка
Whoops, looks like something went wrong.
1/1 ErrorException in IndexController.php line 33: Undefined property: Illuminate\Database\Eloquent\Collection::$work
Доброе утро, знаю что всех достал вопросами, но нужна ваша помощь, не как не могу связать таблицу
Выдате такую ошибку
Whoops, looks like something went wrong.
1/1 ErrorException in IndexController.php line 33: Undefined property: Illuminate\Database\Eloquent\Collection::$work
Уже третий день ломаю, голову смотрю документацию и не чего не могу найти
Вот код
Контролера
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Category;
use App\Work;
class IndexController extends Controller
{
public function index()
{
$category = Category::with('work')->get();
dd($category->work);
return view('site.index');
}
}Модели
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Work extends Model
{
public function category()
{
return $this->belongsTo('App\Work');
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Category extends Model
{
public function work()
{
return $this->hasMany('App\Work');
}
}Хотя в phpMyadmin связь работает
P.S. помогите плиз
Переделал модили и таблици и все равно такая ошибка
ErrorException in IndexController.php line 33: Undefined property: Illuminate\Database\Eloquent\Collection::$category
сейчас попробую переделать таблицы categorios и portfolios
Походу что то с со связью таблиц
При вызове
dd($categorys->portfolio);Выдате такую ошибку
ErrorException in IndexController.php line 51: Undefined property: Illuminate\Database\Eloquent\Collection::$portfolio
я когда создавал миграцию, не ставил что поле категория в таблице портфолио была равна нолю
Да нет везде одинаково
как я понял ругается на $item->category->name
Вы опять слово с ошибкой написали, может, в этом дело? Вам уже говорили про это.
Я же указал таблицу, какую мне надо в свойстве $table в модели Category
Добрый день, не могу разобраться в чем может быть проблема, вроде бы все делаю по хелперу
Вот такую ошибку выдает в виде
Whoops, looks like something went wrong.
3/3 ErrorException in be1c95c0877da96c712f88e5b364d28e2dd6416d.php line 132: Trying to get property of non-object (View: C:\OpenServer\domains\lading.loc\resources\views\site\content.blade.php) (View: C:\OpenServer\domains\lading.loc\resources\views\site\content.blade.php)
Вот Контролер который обрабатывает этот вид
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Page;
use App\Service;
use App\Client;
use App\Team;
use App\Portfolio;
use App\Category;
class IndexController extends Controller
{
public function index()
{
$pages = Page::all();
$service = Service::all();
$client = Client::all();
$teams = Team::all();
$categorys = Category::all();
$portfolio = Portfolio::with('category')->get();
$data = [
'pages' => $pages,
'service' => $service,
'client' => $client,
'teams' => $teams,
'categorys' => $categorys,
'portfolio' => $portfolio,
];
return view('site.index', $data);
}
}А вот модели которые связаны друг с другом
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Portfolio extends Model
{
protected $table = "portfolios";
public function category()
{
return $this->belongsTo('App\Category');
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Category extends Model
{
protected $table = "categorys";
public function portfolio()
{
return $this->hasMany('App\Portfolio', 'categorys_id');
}
}А вот вид где выдает ошибку
@foreach($portfolio as $item)
<div style=" {{ $item->category->name }}">
<h4 class="project_name">{{ $item->title }}</h4>
</div>
</div>
</div>
@endforeachВот код ошибки
Whoops, looks like something went wrong.
3/3 ErrorException in e44afa031038241bb71b51e4149531a76e3b59c6.php line 137: Undefined variable: itemp (View: C:\OpenServer\domains\laging.loc\resources\views\site\content.blade.php) (View: C:\OpenServer\domains\laging.loc\resources\views\site\content.blade.php)
Подскажите а что тут не правельно
@foraech($categorys->portfolio() as $itemp)
<h4 class="project_name">{{ $itemp->title }}</h4>
@endforaechРешил проблему
return $this->hasMany('App\Portfolio', 'categorys_id');
Нашел ошибку, в БД в таблице portfolios указано поле categorys_id` вместо category_id, подскажите как можно кодом исправить это
Подскажите відает такую ошибку, не могу понять причину
QueryException in Connection.php line 770: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'portfolios.category_id' in 'where clause' (SQL: select * from `portfolios` where `portfolios`.`category_id` in (1, 2, 3, 4, 5))
Вот код
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Page;
use App\Service;
use App\Client;
use App\Team;
use App\Portfolio;
use App\Category;
class IndexController extends Controller
{
public function index()
{
$pages = Page::all();
$service = Service::all();
$client = Client::all();
$teams = Team::all();
$categorys = Category::with('portfolio')->get();
$data = [
'pages' => $pages,
'service' => $service,
'client' => $client,
'teams' => $teams,
];
return view('site.index', $data);
}
}
//модель
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Category extends Model
{
protected $table = "categorys";
public function portfolio()
{
return $this->hasMany('App\Portfolio');
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Portfolio extends Model
{
protected $table = "portfolios";
public function category()
{
return $this->belongsTo('App\Category');
}
}Связь в MySql работает нормально
Доброе утро, не как не получается связать таблицы, делаю все по документации, но выдает ошибку
ErrorException in HomeController.php line 17: Undefined property: Illuminate\Database\Eloquent\Collection::$book
вот код Модели Autor
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Autor extends Model
{
public function book()
{
return $this->hasMany('App\Book');
}
}Вот код модели Book
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Book extends Model
{
//
}И Вот код контроле
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Book;
use App\Autor;
class HomeController extends Controller
{
public function Index()
{
$autor = Autor::all();
$a = $autor->book;
dump($a);
return view('welcome');
}
}Не могу понять вчем может быть ошибка
matros97 пишет:Наверное пишу бред ((
$posts = Post::with('categorys')->where('publish', 1)->get();Скажите, Вы из кода это скопировали? Если да, то будьте повнимательнее, и следите за орфографией.
'categorys' - вряд-ли так правильно.
На этом разговор заканчиваю.
Да не копировал а сам писал (((
а какие параметры надо передать в with
Не могу понять, как мне выбрать, при этом использовать жадную загрузку
Да не статья, я прочитал документацию и решил на своем примери сделать,
То есть на главное страницы есть записи, к записи пирявазана категория, и мне надо сделать что бы на страницы где записи выводилась категория к которой она привязана
Наверное пишу бред ((
$posts = Post::with('categorys')->where('publish', 1)->get();