Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Тебе необходимо использовать Query Builder.
$q = new Product;
if(Input::has('brand_id')) {
$q = $q->where('brand_id', Input::get('brand_id'));
}
if(Input::has('country_id')) {
$q = $q->where('country_id', Input::get('country_id'));
}
$q = $q->where('in_stock', true);
$products = $q->get();
А в чем проблема то? Так же как и добавляя данные, отправляешь POST запрос на удаление.
Код писал на лету, могут быть опечатки где то… но суть думаю поймешь
Route::post('item/delete', ['as' => 'item.delete', 'uses' => 'ItemController@destroy']);
public function destroy() {
if(Input::has('id')) {
$item = Item::find(Input::get('id'));
$item->delete();
return Response::json(['success' => true], 200);
}
return Response::son(['success' => false], 400);
}
xml{{ Form::open(['route' => 'item.delete', 'id' => 'form']) }} {{ Form::hidden('id', 1) }} {{ Form::submit('delete item with id = 1') }} {{ Form::close() }} <script> $('#form').submit(function() { var form = $(this); $.ajax({ type: 'POST', url: form.attr('action'), data: form.serialize() }) </script>
Мой способ маршрутизации, пока не подводил если есть какие то комментарии или поправки буду рад услышать
Table «languages» fields [’abbr’, ’title’, ’is_default’]
class Language extends Eloquent {
protected $table = 'languages';
public $timestamps = false;
public $code;
public function set() {
$code = Request::segment(1);
if($code) {
$language = Language::whereAbbr($code)->first();
if($language) {
$this->code = $code;
$this->setVariables($language);
} else {
header("Location: " . Config::get('app.url') . "/" . $this->getDefault());
exit;
}
} else {
$this->code = $this->getDefault();
}
return $this->code;
}
private function getDefault() {
$language = Language::whereIsDefault(true)->first();
$this->setVariables($language);
return $language->abbr;
}
private function setVariables($language) {
Session::put('language_id', $language->id);
Session::put('language_abbr', $language->abbr);
Session::put('language_title', $language->title);
define('LANG', $language->abbr);
App::setLocale($language->abbr);
}
public static function change($language) {
$url = Request::url();
$url_new = str_replace('/'.Request::segment(1), '/'.$language, $url);
return $url_new;
}
}
$language = new Language();
$language->set();
Route::get('/', function() use ($language) {
return Redirect::to('/' . $language->code);
});
Route::group(array('prefix' => $language->code), function() {
// твоя маршрутизация
});
Если меню находится на каждой странице, можно использовать share, как посоветовал Quiss
class NewsController extends BaseController {
public function index() {
$categories = Category::get();
return View::make('news.index', compact('categories'));
}
}
xml<html> <head> ... </head> <body> @include('includes.menu', ['categories' => $categories]) </body> </html>
xml@if($categories) <ul> @foreach($categories as $category) <li>{{ $category->title }}</li> @endforeach </ul> @endif
По поводу активных ссылок, смотря как у Вас устроена маршрутизация, можно использовать URL::currentRouteName() или если парсить часть ссылки Request::segment(n)
(slug — ЧПУ категории)
И тогда получается что то вроде…
xml@foreach($categories as $category) <li class='@if(Request::segment(1) == $category->slug) active @endif'>{{ $category->title }}</li> @endforeach
Может быть где то синтаксические ошибки, писал на ходу, но суть думаю уловил
<script> $('#id_variant').change(function(){ $.ajax({ type: 'post', url: your.url, data: {id: $(this).val()}, success: function(data) { // your action with response } }); }); </script>
public function entropyForVariant() { if(Input::has('id')) { $id = Input::get('id'); $variant = Variant::find($id); return Response::json(['success' => true, 'variant' => $variant]); } return App::abort(400); }
Необходимо создать route, который будет ссылаться на эту функцию.
public function loginWithFacebook() {
// get data from input
$code = Input::get( 'code' );
// get fb service
$fb = OAuth::consumer( 'Facebook' );
// check if code is valid
// if code is provided get user data and sign in
if ( !empty( $code ) ) {
// This was a callback request from facebook, get the token
$token = $fb->requestAccessToken( $code );
// Send a request with it
$result = json_decode( $fb->request( '/me' ), true );
// В массиве $result содержатся все данные, которые передает вам facebook.
dd($result);
}
// if not ask for permission first
else {
// get fb authorization
$url = $fb->getAuthorizationUri();
// return to facebook login url
return Redirect::to( (string)$url );
}
}
В массиве $result содержатся все данные, которые передает вам facebook.
Для каждой социальной сети этот код может немножко отличаться, т.к. отличаются запросы к данным, нужно читать документацию к API каждой, отдельной соц. сети. Допустим перед тем, что бы работал этот пример - вам необходимо создать и настроить свое приложение на facebook (вся информация как это сделать - https://developers.facebook.com) и указать app key & secret key вашего приложения, в настройках этого package..
Присоединяюсь к посту от Proger_XP - успешно пользуюсь этим пакетом, в нескольких проектах
Привет! Я использую во всех своих проектах artdarek/oauth-4-laravel - у него там в документации указаны все примеры для этих социальных сетей - 5 минут и все работает, а если с перспективой на будущее - можно посмотреть исходники методов и в дальнейшем уже использовать, не только для авторизации, но и для постов и чего нибудь еще
С остальными сравнить не могу, т.к. использовал только его..
Оба решения должны выдавать одинаковый результат.
$user = User::find(Auth::id());
$cashes = $user->cashes; // в модели пользователя должно быть указано отношение "cashes" $this->hasMany('Cash').
Ниженаписаный код 100% должен работать, там нечему выдавать ошибку.
$cashes = Cash::where('user_id', '=', $user_id)->get()
Задача не очень ясна, но может я все таки угадал и одно из решений подходит?
$import_id = 1; // нужный тебе ID в таблице "import"
$import = Import::find($id);
// 1-ый вариант
$cash_id = 1; // нужный тебе ID в таблице "cash"
$cash = Cash::find($cash_id);
$cash->un = $cash->un - ($import->pay_un + $import->delivery_un + $import->amt);
$cash->save();
// 2-ой вариант
$cash_id = 1;
$cash = Cash::find($cash_id);
$cash_2 = Cash::create(array('un' => $cash->un - ($import->pay_un + $import->delivery_un + $import->amt));
$user = User::find(Auth::id());
$user->cashes()->save($cash_2);
$user = User::find(1);
DB::table('news')->whereBetween('lon', array($user['lon'] - 0.05, $user['lon'] + 0.05))->whereBetween('lat', array($user['lat'] - 0.05, $user['lat'] + 0.05))->get();
Страницы 1