Алексей
04.02.2017
13:40:49
Скину ссылку.
https://laravel.ru/forum/viewtopic.php?pid=11162#p11162
:)
Sergey
05.02.2017
06:51:40
Google
Алексей
05.02.2017
06:53:03
Сейчас попробую. Вчера до этого сам дошел, но в другом виде записал:
return view('carmakes.show', compact('carmake'), compact('carmodel'));
Sergey
05.02.2017
06:53:27
Второй вариант установить связи между моделями, и в вид передать толькл carmaker как ты и делаешь, а через него получить его марки, что то типа maker->models
Это если ты eloquent orm используешь
И этот вариант проще и правильнее наверно в ларавеле испольщовать
Алексей
05.02.2017
06:54:46
Ну да, я так делал в рельсах, там это как-то очевиднее работало.
А тут тупой вопрос, совсем простая задача и решить не могу. :(
Связи установлены.
если про belongsto
речь.
и про hasmane
hasmany
Sergey
05.02.2017
06:55:48
Функция compact('что-то') создает массив ['что-то': $что-то]
Google
Sergey
05.02.2017
06:56:04
Да, про эти связи
Как называется метод hasMany в котором ты используешь?
Алексей
05.02.2017
06:57:47
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class CarModel extends Model
{
protected $guarded = ['id'];
public function carmake()
{
return $this->belongsTo('App\CarMake');
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class CarMake extends Model
{
protected $fillable = ['Make']; //
public function carmodels()
{
return $this->hasMany('App\CarModel');
}
}
Sergey
05.02.2017
06:59:31
$carmake = CarMake::whereid($id)->firstOrFail();
dd($carmake->carmodels);
Вот так сделай в show
В контролоере
Должен будешь увидить модели
Алексей
05.02.2017
07:01:32
Collection {#184 ▼
#items: []
}
Там пусто, в принципе, понятно почему, в таблице тоже пусто.
Sergey
05.02.2017
07:02:16
Заполнить надо и потестить
И ввиде их также можно получить потом
Что то типа @forEach($carmake->models as model)
model['field']
Алексей
05.02.2017
07:04:55
Collection {#188 ▼
#items: array:1 [▼
0 => CarModel {#189 ▼
#guarded: array:1 [▶]
#connection: null
#table: null
#primaryKey: "id"
#keyType: "int"
#perPage: 15
+incrementing: true
+timestamps: true
#attributes: array:7 [▼
"id" => 1
"car_make_id" => 3
"model" => "Camry"
"wash_group" => 3
"tire_group" => 0
"created_at" => "2017-02-05 10:03:31"
"updated_at" => "2017-02-05 10:03:32"
]
#original: array:7 [▶]
#relations: []
#hidden: []
#visible: []
#appends: []
#fillable: []
#dates: []
#dateFormat: null
#casts: []
#touches: []
#observables: []
#with: []
+exists: true
+wasRecentlyCreated: false
}
]
}
Так.
Дело сдвинулось с мертвой точки.
Из этого массива я создам табличку, где будут модельки.
Осталось понять, как форму приделать на эту же страницу. :)
Массив - там же уже существующие.
Action App\Http\Controllers\CarModelsController@create not defined. (View: /var/www/moyka.deralsem.ru/resources/views/carmakes/show.blade.php)
Google
Алексей
05.02.2017
07:07:03
И вообще, сейчас оно ругается вот на что:
class CarModelsController extends Controller
{
// public function newComment(CommentFormRequest $request)
// {
// $comment = new Comment(array(
// 'post_id' => $request->get('post_id'),
// 'content' => $request->get('content')
// ));
//
// $comment->save();
//
// return redirect()->back()->with('status', 'Your comment has been created!');
// }
public function Create(CarModelFormRequest $request)
{
$carmodel = new CarModel (array(
'car_make_id' => $request->get('car_make_id'),
'model' => $request->get('model')
));
$carmodel->save();
return redirect()->back()->with('status', 'Модель добавлена!');
}
Блин.
А он есть.
http://stackoverflow.com/questions/25170538/laravel-form-actions-leads-to-undefined-route
Вот это вчера нашел.
Может помочь?
Sergey
05.02.2017
07:13:47
Я для себя все маршруты делаю именнованые, если использую в нескольких местах ссылку на него, с помощью функции route()
Это поможет проще с ссылка работами
А форму можно просто вставить туда через blade и сделать ее в отдельнос файле
Или просто написать
Алексей
05.02.2017
07:18:35
Да форма из трех полей состоит и кнопки сохранить.
Смысл отдельно её делать.
Значит надо попробовать именованный роут
После этого дальше буду думать.
Спасибо.
А там в нем нужно айди марки указывать?
По уму - нужно, чтобы из урл брался айди марки. Или нет?
Sergey
05.02.2017
07:20:30
При создании нет
При редактировании нужнр
Google
Sergey
05.02.2017
07:20:47
И при удалении нужен
Алексей
05.02.2017
07:43:58
Спасибо, буду пробовать
root
07.02.2017
16:30:38
Всем ку ребята! Подскажите в миграциях можно указать при ограничении внешнего ключа ON DELETE SET NULL?
onDelete('set null')
Alexander
09.02.2017
17:26:17
@Agel_Nash привет! :)
Евгений
09.02.2017
17:26:33
@bobrovskikh привет
root
09.02.2017
17:39:56
Всем ку! Ребята подскажите советом или более правильным решением задачи. При загрузке панели управления, нужно загружать разные шаблоны для обычных пользователей и администраторов. Есть таблицы "Пользователи", "Роли" и связаная таблица "Роли Пользователей". В контроллере идет проверка $role = Auth::user()->role и отправляется в шаблон. В шаблоне @if($role == "user") один шаблон @else другой шаблон. Это правильное решение или же нужно как то по другому это делать?
Timur
09.02.2017
17:40:03
Привет!
root
09.02.2017
17:48:09
Timur
09.02.2017
17:48:15
?
uonick
09.02.2017
21:09:27
Здрасьте)
Scronheim
10.02.2017
04:48:58
здарова всем)
сори :) проверял как перенос строки тут работает))
if ($role == "user") {
return view (user.user);
}else{
}
это в контроллере
Kirill
10.02.2017
06:35:54
Scronheim
10.02.2017
06:36:35
Evgeny
10.02.2017
06:36:54
или view("{$role->template}.user")
Scronheim
10.02.2017
06:38:07
проблема я так понимаю была в том, что он пытался делать if в шаблоне?
Google
uonick
10.02.2017
08:21:06
но велосипеды писать интересней)
Scronheim
10.02.2017
08:21:52
Дмитрий
10.02.2017
08:33:25
Доброго времени суток.
Я только начинаю изучать Laravel. Создал страничку с зачами(по мануалу) и решил немного поэкспериментировать. Перенес обработку запросов в контроллер(Route::get('/tasks'), 'TaskController@index');....)
Потом хотел сделать проверку запроса формы. Создал request(php artisan make:request StoreTaskRequest) В файле StoreTaskRequest описал метод rules, messages. В контроллере изменил параметр функции store, теперь там "StoreTaskRequest $request".
При попытке сохранить данные в базу(при вызове метода store) возникает ошибка: Class App\Http\Controllers\StoreTaskRequest does not exist
В документации сказано, что нужно только создать request и указать тип запроса в методе контроллера
uonick
10.02.2017
08:35:11
у тебя в use ничего не указано (класс реквеста)
Дмитрий
10.02.2017
08:41:01
Примерно понял. С этими use и неймспейсами у меня совсем плохо. Если я правильно понимаю, мне нужно добавить:
use App\Http\Requests\StoreTaskRequest
?
uonick
10.02.2017
08:41:22
Наверно проще добавить и проверить =)
Ты же обращаешься из одного неймспейса в другой
класс ищет его в этом а это неверно