Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#101 Re: Laravel 5.x » Не получаеться связать таблицу, » 23.12.2016 12:26:37

TrueKanonir пишет:
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

Огромное вам спасибо, все работает думал, что и не получиться, а вы не скажите вчем была ошибка моя

#102 Re: Laravel 5.x » Не получаеться связать таблицу, » 22.12.2016 21:13:15

но мне надо сделать так, что бы отображалась работа и была написана её категория работы 15

#104 Re: Laravel 5.x » Не получаеться связать таблицу, » 22.12.2016 15:08:18

Интересно, то что в виде если так вывисти, но все работает

@foreach ($category as $c)
  <p>{{ $c['name'] }}</p>
  @foreach ($c->work as $item)

    <p>{{ $item['title'] }}</p>
  @endforeach
@endforeach

#105 Re: Laravel 5.x » Не получаеться связать таблицу, » 22.12.2016 14:29:16

Исправил, но все равно ошибка
Whoops, looks like something went wrong.
1/1 ErrorException in IndexController.php line 33: Undefined property: Illuminate\Database\Eloquent\Collection::$work

#106 Laravel 5.x » Не получаеться связать таблицу, » 22.12.2016 13:27:00

matros97
Ответов: 9

Доброе утро, знаю что всех достал вопросами, но нужна ваша помощь, не как не могу связать таблицу
Выдате такую ошибку

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. помогите плиз

#107 Re: Laravel 5.x » Whoops, looks like something went wrong. при связи модели » 22.12.2016 13:10:48

Переделал модили и таблици и все равно такая ошибка
ErrorException in IndexController.php line 33: Undefined property: Illuminate\Database\Eloquent\Collection::$category

#108 Re: Laravel 5.x » Whoops, looks like something went wrong. при связи модели » 22.12.2016 10:37:00

сейчас попробую переделать таблицы categorios и portfolios

#110 Re: Laravel 5.x » Whoops, looks like something went wrong. при связи модели » 22.12.2016 09:30:51

При вызове

dd($categorys->portfolio);

Выдате такую ошибку

ErrorException in IndexController.php line 51: Undefined property: Illuminate\Database\Eloquent\Collection::$portfolio

#111 Re: Laravel 5.x » Whoops, looks like something went wrong. при связи модели » 21.12.2016 19:39:19

я когда создавал миграцию, не ставил что поле категория в таблице портфолио была равна нолю

#114 Re: Laravel 5.x » Whoops, looks like something went wrong. при связи модели » 21.12.2016 16:20:05

Androbim пишет:

Вы опять слово с ошибкой написали, может, в этом дело? Вам уже говорили про это.

Я же указал таблицу, какую мне надо в свойстве $table в модели Category

#115 Laravel 5.x » Whoops, looks like something went wrong. при связи модели » 21.12.2016 14:53:18

matros97
Ответов: 15

Добрый день, не могу разобраться в чем может быть проблема, вроде бы все делаю по хелперу
Вот такую ошибку выдает в виде

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

#116 Re: Laravel 5.x » QueryException in Connection.php line 770: » 20.12.2016 17:02:39

Вот код ошибки
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)

#117 Re: Laravel 5.x » QueryException in Connection.php line 770: » 20.12.2016 17:02:27

Подскажите а что тут не правельно

 @foraech($categorys->portfolio() as $itemp)
     <h4 class="project_name">{{ $itemp->title }}</h4>
 @endforaech

#118 Re: Laravel 5.x » QueryException in Connection.php line 770: » 20.12.2016 16:38:20

Решил проблему
return $this->hasMany('App\Portfolio', 'categorys_id');

#119 Re: Laravel 5.x » QueryException in Connection.php line 770: » 20.12.2016 16:36:07

Нашел ошибку, в БД в таблице portfolios указано поле  categorys_id` вместо category_id, подскажите как можно кодом исправить это

#120 Laravel 5.x » QueryException in Connection.php line 770: » 20.12.2016 16:30:16

matros97
Ответов: 5

Подскажите відает такую ошибку, не могу понять причину

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 работает нормально

#121 Laravel 5.x » Не получаеться связать таблицу » 04.12.2016 09:54:47

matros97
Ответов: 2

Доброе утро, не как не получается связать таблицы, делаю все по документации, но выдает ошибку
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');
    }

}

Не могу понять вчем может быть ошибка

#122 Re: Laravel 5.x » Связаные таблицы » 03.12.2016 14:24:59

Androbim пишет:
matros97 пишет:

Наверное пишу бред ((
$posts = Post::with('categorys')->where('publish', 1)->get();

Скажите, Вы из кода это скопировали? Если да, то будьте повнимательнее, и следите за орфографией.
'categorys' - вряд-ли так правильно.
На этом разговор заканчиваю.

Да не копировал а сам писал (((
а какие параметры надо передать в with

#123 Re: Laravel 5.x » Связаные таблицы » 03.12.2016 14:13:41

Не могу понять, как мне выбрать, при этом использовать жадную загрузку

#124 Re: Laravel 5.x » Связаные таблицы » 03.12.2016 14:13:16

Да не статья, я прочитал документацию и решил на своем примери сделать,
То есть на главное страницы есть записи, к записи пирявазана категория, и мне надо сделать что бы на страницы где записи выводилась категория к которой она привязана

#125 Re: Laravel 5.x » Связаные таблицы » 03.12.2016 14:02:20

Наверное пишу бред ((
$posts = Post::with('categorys')->where('publish', 1)->get();

Подвал раздела