1

(9 odpowiedzi, napisanych Ogólne)

hej. Dokładnie tak jak napisałeś. Z habtm są problemy i chyba najłatwiej jest to zrobić ręcznie ustawiając tabelę łączącą tak jak napisałeś. Bynajmniej ja tak zrobiłem i mogę dodawać dowolną ilość dodatkowych pól.

2

(9 odpowiedzi, napisanych Ogólne)

Dzięki, problem rozwiązany.

3

(2 odpowiedzi, napisanych Uwierzytelnianie i autoryzacja)

Miałem podobny problem, sporo się naszukałem, bo ten tutorial do ACL w book'u jest niekompletny. W końcu poradziłem sobie gdy znalazłem to źródło:

http://realm3.com/articles/setting_up_u … ke_1.2.php

Poniżej zamieszczam jeszcze link do innego tutoriala bardzo podobnego i chyba też dobrego (tego nie sprawdzałem):

http://komunitasweb.com/2009/03/cakephp … t-and-how/

Pozdrawiam

4

(2 odpowiedzi, napisanych i18n, l10n)

Powinno działać. Upewnij się, że w pliku 'app/config/database.php' masz ustawione:  'encoding' => 'UTF8'.
Przy imieniu raczej powinno być tak (pierwsza litera duża, reszta mała):

'rule' => array('custom', '/^[A-ZŁ]{1}[a-ząćęłńóśźż]{2,15}$/i')

Pozdrawiam

5

(9 odpowiedzi, napisanych Ogólne)

Witam,

Mam następujący problem. Posiadam dwie tabele: Orders, Products, ponieważ potrzebuje do jednego zamówienia przypisać wiele produktów skorzystałem z habtm i stworzyłem tabele łączącą orders_products. Model Order i Product  korzystają z 'extendAssociations':

var $actsAs   = array('extendAssociations');

oraz posiadają relację 'hasAndBelongsToMany'.


W kontrolerze orders_controller mam funkcję dodającą zamówienie:

function addOrd() {
        $this->set('products', $this->Order->Product->find('list', array('fields' => array('Product.id', 'Product.Nazwa'))));
        $this->set(compact('products'));

        if (!empty($this->data)) {
            if ( $this->Order->saveAll($this->data)) {
                $this->redirect('/');
            }
        }
    }

W odpowiadającym tej funkcji widoku mam taką formułę:


echo $form->input( 'Product.Product',
             array( 'type'=>'select',
                                'multiple'=>'true',             
                    'options'=>$products,
                                'label'=>'Produkty:'
                              )
               );

Dodaje zamówienie i zaznaczam z ctrl kolejne produkty. Działa poprawnie. Chciałbym jednak dodatkowo do każdego zaznaczonego produktu dodawać ilość sztuk czyli żeby do kazdego rekordu w orders_products dodawać pole 'Sztuki'. Jeśli ktoś wie jak to można zrealizować to będę wdzięczny. Dziękuje z góry.

Pozdrawiam.

6

(6 odpowiedzi, napisanych Ogólne)

Dzieki za odpowiedzi. alfabeta zrobilem podobnie do Ciebie tzn. na szybciora dalem tylko

div.error-message {
    margin-left: 450px;
    color: red;
}

czyli przesunalem tekst bledu na prawo (wczesniej tekst byl schowany pod nizszym formularzem). Na razie takie cos mi wystarcza.

7

(6 odpowiedzi, napisanych Ogólne)

Czy ktos wie gdzie mozna ustawic wyswietlanie sie message przy walidacji? Mam na mysli miejsce na ekranie zeby moc ustawic np obok pola ktore waliduje a nie pod.

8

(2 odpowiedzi, napisanych Ogólne)

tak jak napisales - Orders belongsTo Cities. Jutro to przeanalizuje. Dziekuje za odpowiedz.

9

(2 odpowiedzi, napisanych Ogólne)

Witam,

Mam taki problem. Posiadam tabele:

orders (id, city_id, ilosc, rodzaj)
cities (id, nazwa)

orders dziedziczy po cities.

W bazie istnieja rozne miasta np. Krakow, Warszawa, Gdansk.

Jak zrobic zeby w formularzu dodawania zamowienia byla mozliwosc ustawiania city_id (miasta ktorego dotyczy zamowienie)
na podstawie istniejacych w bazie miast? Jak stworzyc taka liste rozwijana gdzie beda do wyboru rozne miasta?

Pozdrawiam.

10

(0 odpowiedzi, napisanych Ogólne)

witam ponownie,

Zrobilem logowanie wraz z autoryzacją użytkowników. Teraz po zalogowaniu chcialbym aby moja strona domowa (np. home.ctp) wygladala roznie w zaleznosci kto sie zalogowal. Mozna co prawda dac np dwa przyciski 'Przejrzyj Liste' oraz 'Dodaj rekord' i w zaleznosci od praw albo mamy dostep do akcji pod przyciskami albo nie. Jednak nie powinno sie tak robic. Jaki jest sposob zeby np. uzytkownik z grupy 'admin' widzial inne menu na home.ctp niz uzytk. z grupy 'pracownik'?

Btw: jakby ktos mial problemy z ACL polecam artykuł:

http://realm3.com/articles/setting_up_u … ke_1.2.php

EDIT: znalazlem sposob poprzez sprawdzanie roli jaka ma zalogowany uzytkownik i na podstawie tego wyswietlam potrzebne przyciski. Jesli jest jakis inny sposob to podzielcie sie nim smile

11

(2 odpowiedzi, napisanych Ogólne)

ok dodaje mi grupe ale w widoku employee nie widzi tego:

<?php echo $employee['Group']['Nazwa']; ?>

Moge zrobic podobnie jak z saveAll:

$this->set('employees',$this->Employee->User->findAll());

ale jak juz bede mial 3 stopien zaglebienia to nie zadziala.

12

(2 odpowiedzi, napisanych Ogólne)

Mam kolejny problem:

                               <?php
                               echo ($form->create('Employee'));

                               echo ($form->input('Group.Nazwa', array('type' => 'text','label' => 'Grupa:')));
                               echo ($form->input('User.costam', array('type' => 'text','label' => 'costam:')));
                               echo ($form->input('User.costam2', array('type' => 'password','label' => 'costam2:')));
                               echo ($form->input('Employee.costam3', array('type' => 'text','label' => 'costam3:')));

                               printf ($form->end('Dodaj'));
                               ?>

Employee dziedziczy po User, User dziedziczy po Group. Czemu takie cos nie dziala(dodaje sie tylko Employee oraz User)? Jak zrobic zeby dodajac Employee rowniez powstala grupa?

13

(17 odpowiedzi, napisanych Ogólne)

ok problem z dodawaniem pracowników/userów rozwiazany. Dzieki duke_piotr, zalamalem sie...mialem w funkcji add:

$this->Employee->save($this->data) zamiast saveAll <sciana>.

Pora zajac sie logowaniem i prawami jak cos to znowu bede pytal big_smile

14

(17 odpowiedzi, napisanych Ogólne)

hasMany to oznaczaloby ze jeden user np. Lech K. to wielu pracownikow czyli zle, musi byc hasOne. Jeden czlowiek to jeden pracownik.

W takim razie czekam na podpowiedz innych moze ktos wie w czym tkwi problem.

15

(17 odpowiedzi, napisanych Ogólne)

ok problem z folderem console rozwiazany. Jednak nadal mam problem z dodawaniem usera gdy dodaje employee.

Tak wygladaja modele:

class User extends AppModel {

    var $name = 'User';
    var $hasOne = array(
        'Employee' => array(
        'className' => 'Employee',
        'dependent' => true,
                )
         );
}

-----------------------------------------

class Employee extends AppModel {

var $name = 'Employee';
var $belongsTo = array(
     'User' => array(
     'className' => 'User',
        )
      );
}

3 posty wczesniej zamiescilem kod, ktory mam w views/employees/add.ctp i dodaje mi do bazy tylko employee a powinien jeszcze dodawac usera.

Sprawdzam w phpMyAdmin i inkrementuje mi za kazdym razem id w employee ale user_id jest zawsze 0

Prosze o pomoc.

16

(17 odpowiedzi, napisanych Ogólne)

nazwy sa dokladnie takie same. 'Imie' w bazie oraz w kodzie z duzej litery. Moze trzeba skorzystac z dziedziczenia jak w tym artykule?

http://bakery.cakephp.org/articles/view … s-behavior

17

(17 odpowiedzi, napisanych Ogólne)

printf ($form->create('Employee'));
    printf ($form->input('User.Imie', array('type' => 'text', 'label' => 'Imie:')));
    printf ($form->input('User.Nazwisko', array('type' => 'text','label' => 'Nazwisko:')));
    printf ($form->input('User.Telefon', array('type' => 'text','label' => 'Telefon:')));
    printf ($form->input('User.user_role', array('type' => 'text','label' => 'Rola:')));

    printf ($form->input('Employee.Login', array('type' => 'text','label' => 'Login:')));
    printf ($form->input('Employee.Haslo', array('type' => 'password','label' => 'Haslo:')));
    printf ($form->input('Employee.Grupa', array('type' => 'text','label' => 'Grupa:')));
    printf ($form->input('Employee.Pensja', array('type' => 'text','label' => 'Pesel:')));
     
    printf ($form->end('Dodaj'));

Taki kod mam w views/employees/add.ctp i dodaje mi do bazy tylko employee a powinien jeszcze dodawac usera z takim samym id jak pole user_id w employee.

18

(17 odpowiedzi, napisanych Ogólne)

stworzylem takie tabele w bazie jak polecil robal77:

Users (id, user_role, imie, nazwisko, telefon) - user_role - pole enum z wartosciami ('client','employee');
Clients (id, user_id, wojewodztwo, miasto, ulica, kod_poczt)
Employees (id, user_id, login, haslo, grupa, pensja) - grupa - pole enum z wartosciami ('handlowiec', 'menedzer', 'admin').

Nie wiem jak teraz zrobic dobrze logowanie oraz uprawnienia. Prosilbym o bardziej szczegolowa podpowiedz jak mam to ugryzc, od czego zaczac. Jak to zrealizowac uzywajac tych pol enum tak aby client mogl przegladac niektore rzeczy (czyli mial nadane jakies uprawnienia)oraz employee w zaleznosci od grupy rowniez posiadal rozne uprawnienia? Czytalem troche na stronie cakephp ale nie rozgryzlem tego jeszcze dlatego potrzebuje wskazowek.

Mam jeszcze takie pytania:

1. w kontrolerze usera mam taka funkcje:

    function add() {
        if (!empty($this->data)) {
            if ( $this->User->save($this->data)) {
                $this->Session->setFlash('Dodano uzytkownika.');
                $this->redirect(array('action' => 'index'));
            }
        }
    }

Po dodaniu uzytkownika wraca do index ale nie wyswietla komunikatu w setFlash.


2. employee dziedziczy po user. Chcialem w funkcji add w kontrolerze employee poza polami z tabeli employee dodawac tez te z user jak np.Imie:

    printf ($form->input('Imie', array('type' => 'text');

Jak zrobic zeby widzial pola z rodzica-user bo takie cos wywala blad.

3. Mam najnowsza wersje cakephp z oficjalnej strony ale nie posiadam folderu console i nie moge uruchomic konsoli cake-owej jak to jest pokazane w booku. Mozna to doinstalowac?

robal77 nie moze mi w tej chwili pomoc z pewnych powodow, ktore sa zrozumiale ale moze jest ktos na forum kto udzieli mi pomocy. Bede wdzieczny.

19

(17 odpowiedzi, napisanych Ogólne)

ok napisalem na maila

20

(17 odpowiedzi, napisanych Ogólne)

robal77 jest mozliwosc skontaktowania sie z Toba na gg? Chcialem zadac kilka pytan jesli mozna oczywiscie. Pozdrawiam

21

(17 odpowiedzi, napisanych Ogólne)

Users (id, imie, nazwisko, telefon)

Clients (id, user_id, wojewodztwo, miasto, ulica, kod_poczt)

Workers (id, user_id, login, haslo, grupa, pensja)

Mniej wiecej ma to tak wygladac. Glownie chodzi o to ze logowac moga sie jedynie workers. Clients moga bez logowania przegladac niektore czesci systemu i dodatkowo ze wzgledu na pole grupa w tabeli workers beda rozne prawa dla pracownikow (np. grupa admin, grupa menedzer). Da sie to zrealizowac w cake'u?

Btw: Zainstalowalem do cakephp srodowisko Komodo z rozszerzeniem do podpowiadania funkcji w kodzie. Warto sie tego trzymac czy moze jest jakies inne narzedzie?

22

(17 odpowiedzi, napisanych Ogólne)

Witam, zaczynam dopiero zabawe z frameworkiem cakePHP, za pomocą którego chce stworzyc aplikacje webowa (mały CRM). Napotkałem sie na pewien problem:

http://book.cakephp.org/view/172/Authentication

Na powyzszej stronie jest opisany sposob tworzenia systemu logowania i autentykacji w cake. W mojej bazie chcialem zrobic to troche inaczej i stad moje pytanie. W bazie mam takie tabele: users, workers, clients. Workers i clients dziedzicza po users. W workers chce miec pola login i password natomiast clients bez mozliwosci logowania, poniewaz klienci beda mogli jedynie przegladac niektore rzeczy. Mozna jakos przydzielac prawa niezalogowanym klientom?

Nie chce tworzyc users i groups jak w tym tutorialu bo w users musialbym wtedy miec wszystkie pola jakie posiada worker oraz client.