Laravel по-русски
Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Тогда проверяйте, как у Вас всё прописано в модели. Ну и ошибки покажите. А то никак не удаётся отрастить телепатические интерфейсы...
Ну в модели,как на первом посте нечего лишнего,только связи и все. В общем поставил дебагер
ошибка Undefined property: Illuminate\Database\Eloquent\Collection::$id
Код
$posts = Post::with('comment')->get();
foreach($posts as $post) {
echo $post->comment->id;Блин, так вопрос был - показать только данные коммента? Так в третьем сообщении у Вас и выводятся данные коммента. То, что они в json форматируются, так это от того, что коллекцию к строке приводите. Выведите нормально:
echo $post->comment->id; echo $post->comment->comment; echo $post->comment->post_id;
Через пост вытащит данные комента.
Делал я так
echo $post->comment->id;
echo $post->comment->comment;
echo $post->comment->post_id; так не работает,ошибка. Даже стройный дебагер нету ![]()
Eager loading: пользуйте with('comments')
Сделал так
$posts = Post::with('comment')->get();
foreach($posts as $post) {
echo $post->comment;
}вернул
[{"id":2,"comment":"comment","posts_id":1}][{"id":3,"comment":"comment post 2","posts_id":2}]как мне вернуть только данные комента id итд? только не в таком виде как json. Как сделать такой запрос с одним записем например? find($id) итп
с кодом покажи плз)
Есть два моделя
Class Post extends Eloquent {
public function comment()
{
return $this->hasMany('Comment','posts_id');
}и
Class Comment extends Eloquent {
public function post()
{
return $this->belongsTo('Post','posts_id');
}делаю так
$comment = Comment::all();
foreach($comment as $com) {
echo $com->post->title;
}через comment работает.
Как через модель post получить данные из comment? Делаю так
$posts = Post::all();
foreach($posts as $post) {
echo $post->comment->id;
}Так не работает,в чем дело?
Вот и я о том же - нужно искать решение по задаче. Оно вообще может быть простым, если реализовать тот минимум, что необходим и своими руками...
аха своими руками) Я ларой 1месяц 15дней работаю
до этого на yii писал там с этим не трудно,все есть в инете.
С ларой все трудней. Тепер я понимаю этого чувака) http://www.yiiframework.com/forum/index … _p__226619
Самое больное место это ref_id (внешний ключ, ссылающийся на задачу итд) мне тоже уже начался не нравиться этот паттерн.
тут например product_id идет только на товар http://www.elisdn.ru/blog/31/dinamiches … -eav-v-yii
в нашем случае в месте product_id должен быть разные ид задач и контакта. Он подходит для ИМ итп. По моему надо вообще искать другой паттерн и подумать ![]()
Ну, судя по всему, Вы всё правильно расписали. Вам интересно, как из этого сделать форму для заполнения свойств, отображать данные, формировать фильтр или ещё что? Какая именно проблема у Вас?
Если речь идёт о форме, то возьмите плагинчик типа select2 и сделайте typeahead поиск по свойствам + создание нового свойства, если не найдено. Тип поля - сделайте простой select для выбора значений (можно сделать и chain select на поле выбора названия свойства от типа). Значение свойства вводите в инпут, связанный с этим инпутом. Такую связку (поле выбора типа, ввода названия свойства + его значения) сделайте паттерном, который будет добавляться по нажатию кнопочки "добавить свойство". В итоге, когда происходит сохранение, то пробегаетесь по всем свойствам, сохраняете их и связываете с редактируемым объектом.
Когда отображаете данные, то ищите объект и загружаете его свойства - тут всё просто: пользуйте with(''). Тип поля у вас уже зафиксирован - можно использовать его, если требуется.
С фильтром тоже всё относительно просто: выводите все возможные связки свойств и значений. Тип поля для формирования фильтра у вас имеется...
Задача, на самом деле, для всякого рода e-commerce рядовая (как для формирвоании данных, так и для их хранения). Какого-то механизма для реализации всего этого из коробки можно поискать, но мне кажется разве что в разрозненном виде всё - придётся всё равно собирать. А раз так, то, как мне кажется, полезней будет собрать самому: будет понятней, как оно работает и проще будет поддерживать...
Не какой фильтр select2 не нужен
Вы не много,не правильно поняли. Посмотрите http://demo.cartalyst.com/attributes/ Атрибуты отображаеться в пациентах. Так вот при добавление пациента он же показывает все атрибуты c типами, как мне теперь сохранить все атрибуты в пациентах который я добавил?
Мне нужен точно как тут http://demo.cartalyst.com/attributes/
Давай сделаем двоем,точно такое и закинем в гит? опенсоурс будет ![]()
Создаёте все нужные модели, прописываете в них отношения друг с другом, строите нужные запросы. Рядовая задача.
Или в чём-то конкретном вопрос?
Связи с ним все понятно. Этих же полей нужно еще показать как инпут, как выпадающий список итд,тип храниться в type, и как перехватит такие посты. Добавить итд. По этому подробнее.
Структура таблицы пока такой.
tbl_attribute:
id (первичный ключ)
name (название поля)
type (тип значения: text, checkbox, ...)tbl_attribute_value:
id (первичный ключ)
ref_id (внешний ключ, ссылающийся на задачу итд)
attribute_id (внешний ключ, ссылающийся на описание атрибута tbl_attribute)
value (значение)где ref_id будет ID контакта и задач итд (то есть разные ид) как он по ид будет знать что это ид контакта и задач?
Не думаю что это рядовая задача ![]()
Всем привет, хочу сделать eav модель. как можно реализовать? я имею проектирование,кто-то делал на этом фреймворке?
типа такое http://www.elisdn.ru/blog/31/dinamiches … -eav-v-yii
$contacts = Contacts::whereBetween('created_at', ['2013-01-08', '2014-12-10']);
я знаком с этим функ.
как мне сделать запрос в таком виде?
SELECT * FROM `contacts` WHERE DATE(`created_at`) BETWEEN '2013-01-08' AND '2014-12-10'
делаю так не работает.
$datefilter = DB::raw("
SELECT * FROM `contacts` WHERE DATE(`created_at`) BETWEEN ':startDate' AND ':endDate'", array(
'startDate' => '2013-01-08',
'endDate' => '2014-12-10',
));Всем привет. Как сделать запрос в таком виде?
SELECT * FROM contacts
WHERE created_at BETWEEN STR_TO_DATE('2013-01-08', '%Y-%m-%d')
AND STR_TO_DATE('2014-12-10', '%Y-%m-%d'); кто нибудь поможет?
Всем привет,хочу сделать autocomplete как на видео http://www.youtube.com/watch?v=pLBtduvx5b0
1:54 минуте у него уже все работает.
делаю так
Route
Route::get('autocomplete',function() {
return View::make('dashboard.contacts.test');
});
Route::get('getdata',function(){
$term = Input::get('term');
$data = [
'R' => 'Red',
'O' => 'Orange',
'Y' => 'Yellow',
'G' => 'Green'
];
$result = [];
foreach($data as $color) {
if(strpos(Str::lower($color),$term) !== false) {
$result[] = ['value' => $color];
}
}
return Response::json($result);
});View
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI Autocomplete - Default functionality</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.1/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.1/jquery-ui.js"></script>
{{ HTML::style('assets/css/bootstrap.min.css') }}
</head>
<body>
<div class="container">
<h2>test</h2>
{{ Form::open(array('url' => '', 'files'=> true)) }}
<div class="form-group">
<label for="">Find a color</label>
<input type="text" class="form-control input-sm" name="auto" id="auto">
</div>
<div class="form-group">
<label for="">Response</label>
<input type="text" class="form-control input-sm" name="response" id="response" disabled>
</div>
{{Form::close()}}
<script>
$('#auto').autocomplete({
source: 'getdata',
minLength: 1,
select:function(e,ui){
console.log("Selected");
}
});
</script>
</body>
</html>и не работает. Менял так
$(function() {
$("#auto").autocomplete({
source: "getdata",
minLength: 1,
select: function( event, ui ) {
$('#response').val(ui.item.id);
}
});
});все равно не работает. Так вчем дело? Менял ссылку js итд.
Если у Вас в отдельной папке всё лежит в app, насколько я понимаю, то подключите её через psr-0/4 в composer.json:
"autoload": { ... "psr-4": { "Example\\": "app/Example" }, ... }, ...Дальше, правильно установив namespace в файлах, Вы позволите компоузеру заавтолоадить всё, что в Example и провайдер найдётся...
у меня такая фишка же было при создании пакета http://laravel.ru/docs/v4/packages
там тоже надо прописывать workbench?
В config/app.php сервис подключен?
Да. Ошибка именно когда прописал провайдеры.
А что у Вас в компоузере прописано для автозагрузки всего этого?
ну как-то так.
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"require": {
"laravel/framework": "4.2.*",
"way/generators": "1.*",
"barryvdh/laravel-ide-helper": "1.*",
"barryvdh/laravel-debugbar": "1.*",
"codeception/codeception": "*"
},
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/controllers/admin",
"app/controllers/dashboard",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
]
},
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-update-cmd": [
"php artisan clear-compiled",
"php artisan ide-helper:generate",
"php artisan debugbar:publish",
"php artisan optimize"
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "stable"
}Хочу создать фасад точно как на http://laravel.ru/articles/odd_bod/crea … in-laravel
получаю ошибку Class 'Fideloper\Example\ExampleServiceProvider' not found
структура папок у меня такой.
делал composer dump-autoload и composer update безрезультатно.
так в чем проблема?
Всем привет.
Есть такой экшен для редактирование. Хочу чтоб id вернул where, если условия нету вернул ошибку,точнее пользователь может редактировать только свой пост итп.
Делаю так.
Company::with('creator_id', '=', User::getAuthUserId())->get()->find($id);
и типа так делал User::find($id)->where('category', '=', 'Eloquent')->get();
ошибка
public function edit($id)
{
$company = $this->company->find($id);
if (is_null($company))
{
return Redirect::route('companies.index');
}
return View::make('companies.edit', compact('company'));
}как тут быть?
Не могу создать модуль https://github.com/creolab/laravel-modules
получаю ошибку Class App\Modules\Contacts\Controllers\ContactsController does not exist
где ошибка? не могу понять.
сам модуль http://rghost.ru/58259312